排序规则“utf8_bin”对于字符集“utf8mb4”无效

问题描述 投票:0回答:2

我正在尝试在我的应用程序中添加像

😋
这样的表情符号。为了使其工作,我必须在数据库连接中使用
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 查询/

mysql knex.js adonis.js
2个回答
3
投票

排序规则特定于字符集。如果您的字符集是 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;

0
投票

非常感谢您为我提供信息,我是 Sirvio muchísimo me soluciono el Problema que me salía

“排序规则特定于字符集。如果您的字符集是 utf8mb4,那么您可以使用排序规则 utf8mb4_bin,但不能使用 utf8_bin。”En el PhpAdmin cambie la collation que tenia la base de datos y le puse utf8mb4_bin y me funciono! 谢谢,espero que a otros tambien les Sirva

© www.soinside.com 2019 - 2024. All rights reserved.