So first let's see if I get it right:
字符集是一组符号和编码.排序规则是用于比较字符集中字符的一组规则.
我应该使用utf8mb4,因为mysql utf8是一种欺诈,最多3个字节,而不是PHP中真正的最多4个字节的utf8字符集.
因此,utf8mb4是一个字符集,utf8mb4_unicode_ci/utf8mb4_bin是他许多不同的可用排序规则中的两个.
utf8_unicode_ci进行不区分大小写的比较和其他特殊比较(例如,我听说它把法语中的所有口音都弄乱了).utf8_bin区分大小写,因为它比较字符的二进制值.
Now the questions:
-
例如,如果我想使用utf8mb4_unicode_ci允许区分大小写的登录名,我必须执行以下操作:
SELECT name FROM table WHERE BINARY name = 'MyNaMEiSFUlloFUPPERCases';
-
例如,如果我想允许使用utf8mb4_-bin进行不区分大小写的搜索,我必须执行以下操作:
SELECT name FROM table WHERE LOWER(name) LIKE '%myname%'
那么哪一个更好呢?关于utf8_unicode_ci和口音/其他特殊字符,我听说了哪些不好的事情?
谢谢:)