我有mysql子句:
Select * from table where firstname like 'INPUT'
我正在尝试输入INPUT以显示错误:
Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
我设定了变量:
我尝试输入表情符号,但仍显示错误。
在这种情况下你能帮助我吗?
答案 0 :(得分:1)
出现此错误的原因是,您的列firstname
位于字符集utf8
(utf8mb3
的别名)中,该字符集不能表示需要4个字节的字符(所有表情符号字符均落下)在此类别中。)
一种解决方法是将firstname
上的字符集更改为utf8mb4
。但是,这确实存在一个缺点,即如果带有一个索引,则只能将varchar设为191个字符长。
alter table `table` modify `firstname` varchar(191) character set utf8mb4;
答案 1 :(得分:0)
您可以尝试此查询:
select * from table_name where firstname like 'INPUT';
table是一个关键字,因此请尝试在查询中提供表的名称。