我写了个存储过程
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 |
+----------------------+-----------------+
各位高手帮忙解决下吧,不胜感激!
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 |
+----------------------+-----------------+
各位高手帮忙解决下吧,不胜感激!
concat('%',ucase(strcname),'%')