mysql 查询字符串大小写不敏感
2014-12-12 20:29
239 查看
MYSQL 查询字符串大小写不敏感
今天在测试修改用户名的时候,在修改用户名为 nbnb后,发现前端展现的时候却是:
NBNB。于是就排查了下数据库,发现数据库的记录也是
NBNB. 接着,就使用了
nbnb来作为查询条件查询数据,依然能够查询到结果。郁闷了。。。
错误原因:
MySQL 在查询字符串时是大小写不敏感的,在编译MySQL 时一般以ISO-8859 字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。
解决方案:
方案一:
解决方法是对于包含中文的字段加上
binary属性,使之作为二进制比较,例如将
username char(30)修改成
username char(30) binary。
方案二:
在使用源码编译MySQL时,可以在编译的时候使用
--with-charset=gbk参数,这样MySQL 就会直接支持中文查找和排序了。
方案三:
可以使用MySQL 的locate 函数来判断。以上述问题为例,使用方法为:
SELECT * FROM user_info WHERE locate('username', '赵冲') > 0;
方案四:
把SELECT 语句修改成:
SELECT * FROM user_info WHERE username LIKE BINARY '%FIND%'
方案五:
如果你在Windows下使用已经编译好的MySQL,可以修改My.ini中的字符集选项。
default-character-set = gb2312
相关文章推荐
- mysql连接字符串,大小写不敏感查询
- mysql字符串查询大小写问题
- MySQL查询大小写是否敏感问题分析
- 001_024 Python 让某些字符串大小写不敏感 如比较和查询不敏感 其他敏感
- MySQL查询字符串时大小写不敏感
- MySQL查询大小写是否敏感问题分析
- MYSQL查询大小写是否敏感问题分析
- MySQL查询中出现的值大小写不敏感问题
- Mysql查询大小写不敏感简便解决办法
- 详解MySQL查询时区分字符串中字母大小写的方法
- 详解MySQL查询时区分字符串中字母大小写的方法
- mysql数据查询大小写敏感问题
- mysql查询字符串数据区分大小写问题
- mysql字符串查询大小写问题2
- MYSQL查询大小写是否敏感问题分析
- MySQL查询字符串时区分大小写
- mysql查询语句的大小写敏感设置
- mysql查询对大小写不敏感的问题
- MYSQL在默认的情况下查询是不区分大小写的
- 解决MySQL查询不区分大小写