注册 登录
编程论坛 MySQL论坛

关于mysql的中文模糊查询乱码问题?急!!

wei0000 发布于 2011-02-25 16:11, 2304 次点击
select p.userid, p.name,p.mobile,r.USER_TYPE,date_format(r.CREATE_DATE,'%Y-%m-%d %H:%i:%s') from RBAC_USER r,PB_user_ex p where r.USER_ID = p.userid
     and ('"+name+"' is null or p.name like CONCAT('%','"+name+"','%' ))
     and (:MOBILE is null or p.mobile like CONCAT('%',:MOBILE,'%'));

以上是我的查询语句,当我传入的变量name值为中文时,它接受不到值,变成了三个问号,但是传值为英文和数字怎没问题,为什么呢?请哪位高手指教啊!!
查询语句解析后如下:
select p.userid, p.name,p.mobile,r.USER_TYPE,date_format(r.CREATE_DATE,'%Y-%m-%d %H:%i:%s') from RBAC_USER r,PB_user_ex p where r.USER_ID = p.userid and ('???' is null or p.name like CONCAT('%','???','%' )) and (? is null or p.mobile like CONCAT('%',?,'%')) limit ?
3 回复
#2
gdy03492011-02-28 10:18
这是你程序的问题,不是mysql的问题。你看看你写的程序的编码是什么?再看看mysql的编码是什么?
#3
myhnuhai2011-03-05 19:35
楼上正解,主要是编码的问题,两者的编码不相同时用可能会出现乱码!
#4
ph16232011-03-08 20:56
把页面字符换成 utf-8 的试试
1