新建存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `queryEname`(IN strname CHAR)
BEGIN
select * from physprop where Ename like concat('%',ucase(strname),'%');
END调用结果不论怎样输入都是emptyset
而且警告内容是: Data truncated for column 'strname' at row 1而直接在命令行里输入select * from physprop where Ename like '%tr%';
ok,没有问题另外,中文读写都不成问题的
之前写过这个存储过程,没事,后来重建了数据库,就不行了,这是怎么回事呢
网上又有说和字符集有关,所以把参数贴下来了
-----+
| 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
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `queryEname`(IN strname CHAR)
BEGIN
select * from physprop where Ename like concat('%',ucase(strname),'%');
END调用结果不论怎样输入都是emptyset
而且警告内容是: Data truncated for column 'strname' at row 1而直接在命令行里输入select * from physprop where Ename like '%tr%';
ok,没有问题另外,中文读写都不成问题的
之前写过这个存储过程,没事,后来重建了数据库,就不行了,这是怎么回事呢
网上又有说和字符集有关,所以把参数贴下来了
-----+
| 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
|
等同于
(IN strname CHAR(1))
就一个字节。改成 (IN strname CHAR(30))
赞同! 或者改成varchar(30)
在命令行里直接select没问题,用存储过程不行我觉得可能还是字符集的问题!
在命令行里直接select没问题,用存储过程不行我觉得可能还是字符集的问题!