MySQL 返回单个表情符号的多个结果
MySQL returning multiple results for a single emoji
我观察到包含单个表情符号的 VARCHAR 字段有一些奇怪的 MySQL 行为。 connection、database和column都是utf8mb4编码和collation。
有一个名为 categories
的 table,带有 id
和 title
字段。共有三行,标题为 , 和 .
当我 运行 查询查找标题为 的行时,我得到的所有其他行也都带有单个表情符号,就好像 MySQL 将它们视为相同的字符一样。
预期的行为应该是只返回带有的行。
排序规则决定两个字符是否相等。
https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html
如果您只需要精确的二进制匹配,则可能需要指定二进制排序规则。
latin1
.
的一些语法示例
https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html
您需要排序规则utf8mb4_unicode_520_ci
;旧排序规则将表情符号视为平等。
我观察到包含单个表情符号的 VARCHAR 字段有一些奇怪的 MySQL 行为。 connection、database和column都是utf8mb4编码和collation。
有一个名为 categories
的 table,带有 id
和 title
字段。共有三行,标题为 , 和 .
当我 运行 查询查找标题为 的行时,我得到的所有其他行也都带有单个表情符号,就好像 MySQL 将它们视为相同的字符一样。
预期的行为应该是只返回带有的行。
排序规则决定两个字符是否相等。
https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html
如果您只需要精确的二进制匹配,则可能需要指定二进制排序规则。
latin1
.
https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html
您需要排序规则utf8mb4_unicode_520_ci
;旧排序规则将表情符号视为平等。