我在使用MySQL时出现整理错误,具体如下:

OperationalError: (1267, "Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")


经过检查,我注意到它与某些表情符号有关,主要是笑脸。
我已经检查了我的MySQL数据库,默认情况下使用utf8mb4字符集,如下所示:

+------------+---------------------------------------------------------------------------------------------------+
| Database   | Create Database                                                                                   |
+------------+---------------------------------------------------------------------------------------------------+
| Dictionary | CREATE DATABASE `Dictionary` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ |
+------------+---------------------------------------------------------------------------------------------------+


我的MySQL设置还表明所需的一切都设置为utf8mb4:

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+


我正在使用Peewee(Python模块)进行查询,而以下一行是导致归类错误的那一行

SingleWords.get(SingleWords.word == lowercase)


如果我无法插入某些表情符号,这对我来说不是什么大问题,但如果可能的话,我仍然希望。我不知道为什么会这样,有什么想法吗?

最佳答案

尝试这个

  SELECT * COLLATE latin1_general_ci FROM table;


这将选择所有与整理latin1_general_ci

09-04 13:38
查看更多