mysql存储过程调用问题

winter1219 2014-05-08 09:23:21
delimiter //
create procedure sp_stu_1(in p_name varchar(20))
begin
if p_name is null or p_name='' then
select * from student;
else
select * from student where 姓名 like p_name;
end if;
end
//
调用该过程call p_name('张%'),显示结果为空。表中确实是有符合条件的记录的。
如果把姓名改为英文,如Tom,就能显示出来。
为什么不能查找到汉字呢?
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winter1219 2014-05-10
  • 打赏
  • 举报
回复
谢谢大家。问题解决了。只要加上一个character set utf8就行了。
ACMAIN_CHM 2014-05-08
  • 打赏
  • 举报
回复
检查你的字符集设置。 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx MySQL 中文显示乱码
wwwwb 2014-05-08
  • 打赏
  • 举报
回复
在SP中运行,字符串累加生成SQL语句,再动态执行
winter1219 2014-05-08
  • 打赏
  • 举报
回复
请问,这些内容要放在存储过程里面吗?这几句命令是什么功能呢?
wwwwb 2014-05-08
  • 打赏
  • 举报
回复
set @asql=concat(' select * from student where 姓名 like ',p_name,'%'); prepare stml from @asql; execute stml;
winter1219 2014-05-08
  • 打赏
  • 举报
回复
使用select * from student where 姓名 like '张%' 命令是可以找到记录的。
winter1219 2014-05-08
  • 打赏
  • 举报
回复
查找数字类的字符型数据也能找到,比如call sp_stu('123');就是找不到汉字。请问大神们,为什么呢?
wwwwb 2014-05-08
  • 打赏
  • 举报
回复
select * from student where 姓名 like '张%' 在MYSQL命令行下运行,是否有结果

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧