这其实是一个小问题,但小问题往往是一个高频问题。我敢打赌,很多网站的数据库设计者可能都没有注意这个细节。不信,你去试一试大多数网站的登录,账号如果是邮箱,或者是名称的,你可以看看是否区分大小写!
造成这个问题的原因是,我们经常再讲 select、insert 之类的 SQL 语句,而对于创建数据库,表之类的一些常规配置项还不太理解。通常你在看书,或者是老师教你时,在创建数据库时,直接说选择默认的就可以。一笔带过!
最熟悉的陌生人!往往是这个一笔带过把我们带到坑里了。因为我们在创建表或数据库的时候,默认的排序规则就是不区分大小写的。
MySQL 有很多默认的排序规则的,并且不同的字符集有不同的排序规则,但它们也是有规律可循的。我们可以通过下面的 SQL 语句来查看对应字符集的默认排序规则。
SHOW COLLATION LIKE 'utf8/_%';
这个 Collation 其实非常的有规律。第一个“-”前面是对应的字符集;中间是语言,各个国家支持的语言;最后面的”ci”代表比较规则。
如果你默认选择的是 utf8_general_ci,或者是 xx_general_ci,那它就不会区分大小写。想要区分大小写,就要选择以”_cs”结尾的排序规则。
以上,希望能够帮助大家解决一些实际工作中的问题。
: » MySQL 中,为什么有些数据库在匹配字符时不区分大小写?
原创文章,作者:jamestackk,如若转载,请注明出处:https://blog.ytso.com/252413.html