我写了个存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `selectbyCname`(IN strcname CHAR)
BEGIN
  select * from physprop where Cname  like  ucase('%strcname%');
END
但call selectbyCname('插入');
却总是得到emptyset改为
select * from physprop where Cname=strcname;
调用时有的数据能得到结果,有的还是emptyset而不用存储过程直接在命令行里select或者insert都没有问题有时还出现data too long for column 的问题看到网上有说是字符集的问题的,把我用的字符集写出来
其中数据库是innoDB 数据库和Cname字段都是utf-8
Cname字段用的VARCHAR(30),用来存储中文
+--------------------------+----------
-----+
| character_set_client     | gbk
     |
| character_set_connection | gbk
     |
| character_set_database   | utf8
     |
| character_set_filesystem | binary
     |
| character_set_results    | gbk
     |
| character_set_server     | utf8
     |
| character_set_system     | utf8
     |
mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | gbk_chinese_ci  |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
各位高手帮忙解决下吧,不胜感激!