我正在观察包含单个表情符号的VARCHAR字段的一些奇怪的MySQL行为。连接,数据库和列都是utf8mb4编码和排序规则。
有一个名为categories
的表格,其中包含id
和title
个字段。有三行,标题为和。
当我运行查询以查找带有标题的行时,我也会使用单个emojis获取所有其他行,就像MySQL将它们视为相同的字符一样。
预期的行为应该是只返回行。
答案 0 :(得分:2)
归类确定两个字符是否相等。
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
答案 1 :(得分:1)
您需要整理utf8mb4_unicode_520_ci
;较旧的校对将表情符号视为平等。