在测试一些代码时,我遇到了以下MySQL错误:
Error Code: 1267. Illegal mix of collations (utf8_general_ci,IMPLICIT) and ( utf8mb4_general_ci,COERCIBLE) for operation '='
我在一个标准的MySQL UTF-8排序列上使用了WHERE语句,其中包含一个使用4个字节的字符。除非我误解了,在阅读时,我发现以下信息:
- MySQL最初的UTF-8实现不完整(最多支持3个字节)
- 解决这个问题的方法是一个称为utf8mb4的新排序规则,它绝不是一种新编码,而只是MySQL用来修补他们最初的错误。
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'
我找到了这个旧问题(MySQL Workbench charset),在那里似乎不可能覆盖设置,但即使我花费了太多时间搜索配置,我仍然无法相信这仍然是事实??