参数的类型为整形就可以筛选出结果集,一换成字符型的就都为空集了,就像下面一样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)

解决方案 »

  1.   

    elect * from test where content banary like '%kw%' ;
      

  2.   

    banary 这是什么关键字 加上去都语法错误的啊
    唉 怎么没人回复的啊 那位前辈给一个关于存储过程参数为字符型的例子出来看一下啊
      

  3.   

    把Like换成locate
    如下:
    Locate('kw',content)>0
      

  4.   

    shetianlang(農民學編程) ,谢了
    不过你的写法有错
    应该是Locate(kw,content)>0 ,kw变量不能加引号,否则也是返回空集,搞得我也烦了一段时间才找出原因.
    用INSTR(kw,content)也是可以的
    不过还是觉得挺纳闷的,为什么一定调用存储过程的内部函数才能实现搜索呢,难道在存储过程里
    LIKE的语法就不支持了?