日期:2014-05-16 浏览次数:20943 次
首先看个例子:
有个user 表
User( username VARCHAR(5) CHARACTER SET utf8COLLATE utf8_general_ci);
有记录('username');和('UserNAme');
使用 select * from User where username='username'; 将会选出两条数据
然后将username的COLLATE改为utf8_bin;
User(
username VARCHAR(5) CHARACTER SET utf8 COLLATE utf8_bin);
再使用
select * from User where username='username'; 将会选出第一条数据
这是为什么呢?请往下看:
字符集(CHARACTER SET)是一套符号和编码。校对规则(COLLATE)是在字符集内用于比较字符的一套规则。让我们使用一个假想字符集的例子来区别清楚。
假设我们有一个字母表使用了四个字母:‘A’、‘B’、‘a’、‘b’。我们为每个字母赋予一个数值:‘A’