方法一:解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。 方法二: 如果你使用源码编译MySQL,可以编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。 方法三: 可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:
SELECT * FROM table WHERE locate(field,'李') > 0;
本站使用的就是这种方法,感觉还不错。:P
方法四:把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!
SELECT * FROM table WHERE locate(field,'李') > 0;
本站使用的就是这种方法,感觉还不错。:P
方法四:把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!
多加一个试试
再去查询就没问题了,不需要去改数据结构。
to: ice_berg16(寻梦的稻草人): 不行。
chinaworker(网络混混 Hrcn.CN) 的方法:(除掉方法2)方法一:试过,不行。方法四:同样不行。 两者结合起来还是不行。
方法三:
$query="select * from table1 where locate(title,'%".$key."$') > 0";
一个也查不到了.顺便问一下:locate是什么意思???
select * from table1 where Binary title LIKE '%$key%';
搜索到的结果是很正常,不管是搜索几个都是正常的!
让它可以作为二进制比较。(可使用如phpmyadmin类工具)2、改掉你所使用的查询命令
改
select * from table1 where Binary title LIKE '%".$key."%';
为
select * from table1 where title LIKE '%%".$key."%%';
加上两个%%可解决单个汉字查询的问题,因为%只代表一个字节的字符,而
汉字是由两个字节组成的字符。请将1和2都做,可以保证解决单个汉字查询的问题。(我的东西就是这么做
的。)如果还是不是,可以基本肯定是楼主的PHP需要重新装了,请重装吧。
个人意见,供楼主参考
$key=$_POST["key"];//如果你的form 的method是 post 的话
$key=$_GET["key"];//如果你的form 的method是 get 的话如果
select * from table where title LIKE '%".$key."%';
还不行的话,请重装吧~:)