我正在尝试添加像我的应用程序中的表情符号。为了使它工作,我必须在数据库连接中使用charset : 'utf8mb4'
。但是,我的另一个搜索查询不能工作,并且出现了这样的错误
select id, full_name, profile_pic from users where school_id = 1 and exists (select * from groupmembers where (group_id = '110') and (users.id = groupmembers.user_id)) and full_name like '%d%' COLLATE utf8_bin - ER_COLLATION_CHARSET_MISMATCH: COLLATION 'utf8_bin' is not valid for CHARACTER SET 'utf8mb4
我怎么才能让这两者一起工作呢?我使用的是adonis.js框架,它使用knex查询/
发布于 2022-09-17 13:06:59
排序规则特定于字符集。如果您的字符集是utf8mb4,那么您可以使用排序规则utf8mb4_bin,而不是utf8_bin。
有一天,这会变得更加令人困惑,因为MySQL打算将utf8mb4的名称更改为utf8。请参阅https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8.html
您可以检查此查询所允许的所有排序规则:
select collation_name
from information_schema.collation_character_set_applicability
where character_set_name = @@character_set_connection;
https://stackoverflow.com/questions/73754763
复制相似问题