MySQL 返回单个表情符号的多个结果

MySQL returning multiple results for a single emoji

我观察到包含单个表情符号的 VARCHAR 字段有一些奇怪的 MySQL 行为。 connection、database和column都是utf8mb4编码和collat​​ion。

有一个名为 categories 的 table,带有 idtitle 字段。共有三行,标题为 , 和 .

当我 运行 查询查找标题为 的行时,我得到的所有其他行也都带有单个表情符号,就好像 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;旧排序规则将表情符号视为平等。