我有mysql条款:
Select * from table where firstname like 'INPUT'
我正在尝试输入显示错误: Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like' 我设置了变量:我试图输入表情符号,但仍然显示错误。这个案子你能帮我吗?
Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
zqry0prt1#
您可以尝试此查询:
select * from table_name where firstname like 'INPUT';
table是关键字,因此请尝试在查询中指定表的名称。
cnwbcb6i2#
出现此错误的原因是您的列 firstname 在角色集中 utf8 (别名为 utf8mb3 )它不能表示需要4字节的字符(所有表情符号都属于这一类)。解决这个问题的一个方法是更改上的字符集 firstname 至 utf8mb4 . 但是,这样做的缺点是,如果varchar上有索引,那么它只能有191个字符长。
firstname
utf8
utf8mb3
utf8mb4
alter table `table` modify `firstname` varchar(191) character set utf8mb4;
2条答案
按热度按时间zqry0prt1#
您可以尝试此查询:
table是关键字,因此请尝试在查询中指定表的名称。
cnwbcb6i2#
出现此错误的原因是您的列
firstname
在角色集中utf8
(别名为utf8mb3
)它不能表示需要4字节的字符(所有表情符号都属于这一类)。解决这个问题的一个方法是更改上的字符集
firstname
至utf8mb4
. 但是,这样做的缺点是,如果varchar上有索引,那么它只能有191个字符长。