我最近切换到 utf8_general_ci 因为它支持所有字符,以便其他国家的其他人可以在我的网页上写例如评论。
现在,当我尝试根据这些字符进行排序时,它不起作用。例如,它对待 ö 和 o 是一样的。它对待 å 和 a 一样。要求 UTF8 和正确排序是否太过分了?对包含 700 条记录的记录集进行排序是否会给 PHP 带来很大压力?
我怎样才能解决这个问题?谢谢!
我最近切换到 utf8_general_ci 因为它支持所有字符,以便其他国家的其他人可以在我的网页上写例如评论。
现在,当我尝试根据这些字符进行排序时,它不起作用。例如,它对待 ö 和 o 是一样的。它对待 å 和 a 一样。要求 UTF8 和正确排序是否太过分了?对包含 700 条记录的记录集进行排序是否会给 PHP 带来很大压力?
我怎样才能解决这个问题?谢谢!
为了进一步说明,以下等式适用于两者
utf8_general_ci
(utf8_unicode_ci
对于比较或搜索时的效果,请参阅第 10.1.7.8 节,“整理效果的示例”</a>):Ä = A Ø = O ü = U
如果你想按Unicode codepoint排序,你应该使用xxx_bin
排序规则:
ORDER BY myColumn COLLATE utf8_bin
如果您想按字符串的二进制编码排序(恰好对 UTF-8 产生相同的结果),您应该使用BINARY
:
ORDER BY BINARY myColumn
您可以添加另一个字段类型 int,您可以在其中输入对记录集进行排序所需的数字(每个 firet char 对应一个数字)
无论如何,700 条记录在几微秒内用 PHP 进行排序......