Mysql数据库like模糊查询中文字段不准确的临时解决办法
2014-08-21 16:50
471 查看
在mysql下,在进行like检索时,有时候会返回一些与查询词不相关的记录,如查找 “%s%” 时,返回的结果中可能有中文字符,却没有s字符存在,这与数据库中文编码规则有关
如希望查找title中含有字母s的所有新闻:
返回的结果中有一些包含s,而有些则只有中文,很郁闷(也很邪恶,嘿嘿)。
测试了下,发现一种解决方法,就是使用 BINARY(是
这样结果就比较准确了,但还有一个问题,就是字母区分大小写,检索的时候依然不正确,只好再转化一下了:
如此,临时解决办法搞定,不过速度会变慢,希望以后的mysql版本能解决掉此问题。
如希望查找title中含有字母s的所有新闻:
select * from test.news where title like '%s%'
返回的结果中有一些包含s,而有些则只有中文,很郁闷(也很邪恶,嘿嘿)。
测试了下,发现一种解决方法,就是使用 BINARY(是
CAST(简短写法) 强制转换进行检索strAS BINARY)
select * from test.news where binary title like '%s%'
这样结果就比较准确了,但还有一个问题,就是字母区分大小写,检索的时候依然不正确,只好再转化一下了:
select * from test.news where binary ucase(title) like '%s%'
如此,临时解决办法搞定,不过速度会变慢,希望以后的mysql版本能解决掉此问题。
相关文章推荐
- Mysql数据库like模糊查询中文字段不准确的临时解决办法
- MySQL数据库like查询中文出现不准确的解决方法
- MySQL使用like查询中文不准确的解决方法
- Json_encode过的字段值在mysql中模糊查询不出来的原因及解决办法
- mybatis不能插入,查询中文的问题以及可能的解决办法,以及Mysql数据库编码的设置
- SQLITE中文模糊查询的问题及解决办法
- jsp向mysql数据库插入中文字段 乱码以及中文空白的解决办法
- 对于Sql模糊查询的话,需要对多个字段进行模糊查询的解决办法
- Mybatis模糊查询,查询不到中文,却可以查询到英文和数字的一种解决办法
- mysql预编译模糊查询(like)中?的冲突,出错的解决办法。
- 关于sql字符串字段的模糊查询与字符串字段里筛选部分值的记录的解决办法
- 最有效率的“多字段模糊匹配关键字查询”的解决办法
- Mysql中通过Like匹配中文不准确的解决办法
- ACCESS模糊查询like的解决方法&&SQL查询语句通配符问题
- td8.0描述字段中文字符解决办法(字体大小控件下载)
- 多字段模糊查询sql like %% 优化与区别
- SQL 搜索中文字段,搜不到的解决办法
- 解决MySQL数据库中文模糊检索问题的方法
- Hibernate3的Like用法,解决中文查询问题
- Windchill中实现like模糊查询字段中包含“_”和“%”的高级查询