• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL里的like问题

mysql 搞代码 4年前 (2022-01-09) 17次浏览 已收录 0个评论

最近使用MySQL时遇到的问题,like查询总能出来很奇怪的东西,与like后面的东西一点也不一致,我查了一下,终于解决了,用的是下面

最近使用MySQL时遇到的问题,like查询总能出来很奇怪的东西,与like后面的东西一点也不一致,我查了一下,终于解决了,用的是下面的方法四,别的没试,你有兴趣就试试其他的吧!

方法一:

解决方法是对于包含中文的字段加上”binary”属性,使之作为二进制比较,例如将”name char(10)”改成”name char(10)binary”。

方法二:

如果你使用源码编译MySQL,可以编译MySQL时使用–with–charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。

方法三:

可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:

SELECT * FROM table WHERE locate(field,’李’) > 0;

方法四:

把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY ‘%FIND%’即可

问题出现的原因是:

在MySQL中,,进行中文排序和查找的时候,对汉字的排序和查本文来源gaodaimacom搞#^代%!码&网(找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。

MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL里的like问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址