我在使用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