很多人用的是默认的以 _ci 结尾的排序规则;
- _ci 结尾表示大小写不敏感(caseinsensitive)
- _cs 表示大小写敏感(case sensitive)
- _bin 表示二进制的比较(binary)
如果对应的字段是需要区分大小写比对的,那么可能会出现错判的情况;
例如一个 Token: AAbb
如果排序规则是 utf8_general_ci
那么 aabb 也是会 match 的.
这种情况,请修改排序规则为 utf8_bin.
-------- 以下内容是转载自 https://www.cnblogs.com/zjfjava/p/7639535.html-----------
utf8_unicode_ci 和 utf8_general_ci 对中、英文来说没有实质的差别。
utf8_general_ci 校对速度快,但准确度稍差。
utf8_unicode_ci 准确度高,但校对速度稍慢。
如果你的应用有德语、法语或者俄语,请一定使用 utf8_unicode_ci。一般用 utf8_general_ci 就够了。
例如你运行:
SELECT * FROM table WHERE txt = 'a'
那么在 utf8_bin 中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以。
utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果
utf8_bin:字符串每个字符串用二进制数据编译存储。区分大小写,而且可以存二进制的内容
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于