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

Ben*_*ber 6 mysql collation diacritics equivalent

我的表校对是"utf8_general_ci".如果我运行如下查询:

SELECT * FROM mytable WHERE myfield = "FÖÖ"
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

...  myfield = "FÖÖ"
...  myfield = "FOO"
Run Code Online (Sandbox Code Playgroud)

这是"utf8_general_ci"的默认值吗?

我应该使用什么整理来获取myfield ="FÖÖ"的记录?

Gun*_*nni 6

SELECT * FROM table WHERE some_field LIKE ('%ö%'  COLLATE utf8_bin)
Run Code Online (Sandbox Code Playgroud)

  • 错误 1253 (42000):排序规则“utf8_bin”对于字符集“utf8mb4”无效 (3认同)
  • 在提供解决问题的代码时,最好还至少给出其工作原理的简短解释,以便阅读者不必在心里逐行解析它以理解差异。 (2认同)
  • 答案来自撒旦先生,他不需要解释。 (2认同)

Ham*_*ite 3

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

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

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