问题描述:
今天使用mysql查询China时,返回了两个单词china 和 China
select * from vocabulary where word="china"
查询结果没有区分大小写。
原因分析:
- 字符集
utf8_general_ci ---不区分大小写
utf8_bin--区分大小写 - CREATE TABLE NAME(name VARCHAR(10));
对这个表,缺省情况下,下面两个查询的结果是一样的:
SELECT * FROM TABLE NAME WHERE name='china';
SELECT * FROM TABLE NAME WHERE name='China';
解决办法:
1.MySql默认查询是不区分大小写的,如果需要区分他,必须在建表的时候,Binary标示敏感的属性.
2、修改字段排序类型,从utf8_general_ci 改为: utf8_bin
ALTER TABLE vocabulary MODIFY COLUMN word VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin
3、使用navicat进行修改: