我的表排序规则是“utf8_general_ci”。如果我运行如下查询:
SELECT * FROM mytable WHERE myfield = "FÖÖ"
我得到的结果:
... myfield = "FÖÖ"
... myfield = "FOO"
这是“utf8_general_ci”的默认值吗?
我应该使用什么排序规则来仅获取 myfield = "FÖÖ" 的记录?
我的表排序规则是“utf8_general_ci”。如果我运行如下查询:
SELECT * FROM mytable WHERE myfield = "FÖÖ"
我得到的结果:
... myfield = "FÖÖ"
... myfield = "FOO"
这是“utf8_general_ci”的默认值吗?
我应该使用什么排序规则来仅获取 myfield = "FÖÖ" 的记录?
SELECT * FROM table WHERE some_field LIKE ('%ö%' COLLATE utf8_bin)
MySQL 为 Unicode 字符集提供的排序规则列表可以在这里找到:
http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
如果您想全力以赴并要求字符串绝对相同以便测试相等,您可以使用utf8_bin
(二进制排序规则)。否则,您可能需要对提供的不同排序规则进行一些实验。
对于斯堪的纳维亚字母,您可以使用 utf8_swedish_ci fi 示例。
这是 utf8_swedish_ci 的字符分组。它显示哪些字符被解释为相同。 http://collation-charts.org/mysql60/mysql604.utf8_swedish_ci.html
这是其他排序规则的目录列表。我不确定哪个是使用的 utf8_general_ci。http://collation-charts.org/mysql60/