mysql中文查询时的字符集匹配问题

xmbovey

xmbovey

2016-02-19 14:06

下面是个超简单的mysql中文查询时的字符集匹配问题教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

  我在写一个查询条件时的问题如下:
如我想写一个字段中包含“李”字的所有记录
?$str="李";
select * from table where field like ''%?$str%'' ;
显示的记录中除了包含”李”字的记录,还有不包含“李”字的记录。为什么?

在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

方法一:

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

方法二:

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

方法三:

  可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:
SELECT * FROM table WHERE locate(field,''李'') 0;
本站使用的就是这种方法,感觉还不错。:P

方法四:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

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

展开更多 50%)
分享

猜你喜欢

mysql中文查询时的字符集匹配问题

编程语言 网络编程
mysql中文查询时的字符集匹配问题

MySQL字符集

编程语言 网络编程
MySQL字符集

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MySQL 存储过程的字符集问题

编程语言 网络编程
MySQL 存储过程的字符集问题

小谈MySQL字符集

编程语言 网络编程
小谈MySQL字符集

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

mysql 字符集的系统变量说明

编程语言 网络编程
mysql 字符集的系统变量说明

MySQL 4.1 字符集支持的原理

MySQL mysql数据库
MySQL 4.1 字符集支持的原理

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PowerPoint2003图片透明色的设置

PowerPoint2003图片透明色的设置

如何在Win9x/2k下建立共享目录

如何在Win9x/2k下建立共享目录
下拉加载更多内容 ↓