MySQL DB选择带有和不带变音符号的记录。例如:'..某事物=FÖÖ'

时间:2011-06-08 13:21:56

标签: mysql collation equivalent diacritics

我的表格整理是“utf8_general_ci”。如果我运行如下查询:

SELECT * FROM mytable WHERE myfield = "FÖÖ"

我得到的结果是:

...  myfield = "FÖÖ"
...  myfield = "FOO"

这是“utf8_general_ci”的默认值吗?

我应该使用哪种排序规则来获取myfield =“FÖÖ”的记录?

3 个答案:

答案 0 :(得分:6)

SELECT * FROM table WHERE some_field LIKE ('%ö%'  COLLATE utf8_bin)

答案 1 :(得分:3)

可以在此处找到MySQL为Unicode字符集提供的排序规则列表:

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

如果你想全力以赴并且要求字符串完全相同以便测试相等,你可以使用utf8_bin(二进制排序规则)。否则,您可能需要对提供的不同排序规则进行一些实验。

答案 2 :(得分:0)

对于斯堪的纳维亚字母,您可以使用utf8_swedish_ci fir示例。

这是utf8_swedish_ci的字符分组。它显示哪些字符被解释为相同。 http://collation-charts.org/mysql60/mysql604.utf8_swedish_ci.html

这是其他排序规则的目录列表。我不确定使用的utf8_general_ci是哪个。 http://collation-charts.org/mysql60/