参数的类型为整形就可以筛选出结果集,一换成字符型的就都为空集了,就像下面一样mysql> delimiter //
mysql> create procedure tmp(kw varchar(20))
-> begin
-> select * from test where content like '%kw%' ;
-> end
-> //
Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;
mysql> set names 'gbk' ;
mysql> call tmp('高') ;
Empty set (0.00 sec)
mysql> create procedure tmp(kw varchar(20))
-> begin
-> select * from test where content like '%kw%' ;
-> end
-> //
Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;
mysql> set names 'gbk' ;
mysql> call tmp('高') ;
Empty set (0.00 sec)
唉 怎么没人回复的啊 那位前辈给一个关于存储过程参数为字符型的例子出来看一下啊
如下:
Locate('kw',content)>0
不过你的写法有错
应该是Locate(kw,content)>0 ,kw变量不能加引号,否则也是返回空集,搞得我也烦了一段时间才找出原因.
用INSTR(kw,content)也是可以的
不过还是觉得挺纳闷的,为什么一定调用存储过程的内部函数才能实现搜索呢,难道在存储过程里
LIKE的语法就不支持了?