#问题介绍 MySQL中大小写敏感问题经常会带来很多问题: 比如说:
select * from test
和SELECT * FROM TEST
是无差别的。
这个还好理解,但是如果遇到下面这样的情况:
select * from test where name = 'del'
和select * from test where name='DEL'
无差别
那就很可怕了!!
#解决方法 这是什么原因呢?原来是因为MySQL中字符编码导致的。一句话的说:
utf-8_bin 以二进制值进行比较。【也就是区分大小写】
uft-8_general_ci按字母顺序比较。 【不区分大小写 'A'='a'collation:校对】
所以才会发生上面那种这么奇怪的问题!
另外,网上也有说添加binary
关键字进行字段修饰的解决方法:
alter table test modify name binary;
其实本质上也是把collatioin(校对)模式改成二进制校对,实现大小写敏感。
相关阅读: