我正在使用MySQL5.6。 DB字符集是utf8mb4。 当我按下面搜索表情符号时,我得到了意想不到的结果。
mysql> SELECT id, hex(title) FROM tags WHERE title = 0xF09F9886;
+-----+------------+
| id | hex(title) |
+-----+------------+
| 165 | F09F9886 |
| 166 | F09F9884 |
+-----+------------+
它应该只返回id = 165。有谁知道这个为什么?
答案 0 :(得分:4)
我找到了解决方法。这是整理问题。我使用默认的排序规则值,我认为它是utf8mb4_general_ci
。当我更改了utf8mb4_bin时,MySQL返回了正确的结果。
您可以更改排序规则,如下所示。
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;