在mysql下,在进行like检索时,有时候会返回一些与查询词不相关的记录,如查找 %s% 时,返回的结果中可能有中文字符,却没有s字符存在,这与数据库中文编码规则有关 如希望查找title中含有字母s的所有新闻: select * from test.news where title like ' % s
在mysql下,在进行like检索时,有时候会返回一些与查询词不相关的记录,如查找 [%s%] 时,返回的结果中可能有中文字符,却没有s字符存在,这与数据库中文编码规则有关
如希望查找title中含有字母s的所有新闻:
select * from test.news where title like ' % s % '
返回的结果中有一些包含s,而有些则只有中文,很郁闷(也很邪恶,嘿嘿)。
测试了下,发现一种解决方法,就是使用 BINARY(是 CAST( str AS BINARY) 简短写法) 强制转换进行检索
select * from test.news where binary title like ' % s % '
这样结果就比较准确了,但还有一个问题,就是字母区分大小写,检索的时候依然不正确,只好再转化一下了:
select * from test.news where binary ucase ( title ) like ' % s % '
如此,临时解决办法搞定,不过速度会变慢,希望以后的mysql版本能解决掉此问题。
查看更多关于Mysql数据库like模糊查询中文字段不准确的临时解决办法的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did98260