mysql utf8mb4_general_ci 问题

标签 mysql unicode

我对 utf8mb4_general_ci 表中的 unicode 字符有疑问

SELECT * FROM `t1` WHERE c1='musca' 

返回

musca
muşca
muşcă

我想知道这是否是一个错误 - 听起来像是;

如果它影响搜索 - 它可能,或者更好地说它应该;我无法使列成为唯一索引

我应该做什么,以便mysql将aăsş视为不同的实体? (可能是 a 和 â、t 和 ţ、i 和 î,但我还没有检查过)。

我应该将 unicode 字符存储为 â ă ş ţ î 吗?

我需要检索用户输入的精确匹配。

编辑添加:

答案在评论中:我应该将这些列整理为 utf8mb4_0900_as_cs,如 Madhur Bhaiya 解释和演示的那样

最佳答案

您需要在相关表列上使用COLLATION utf8_romanian_ci(或utf8mb4_romanian_ci)。它是唯一将这 5 个字符视为单独“字母”的排序规则。

引用:http://mysql.rjweb.org/utf8_collations.html

这在大多数版本的 MySQL/MariaDB 中都可用。不需要 utf8mb4_0900_as_cs,这意味着 MySQL 8.0。

关于mysql utf8mb4_general_ci 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517708/

相关文章:

python - 了解 Python Unicode 和 Linux 终端

unicode - 为什么度数符号与 UTF-8 和 unicode 不同?

python - 否则缩进错误: unexpected unindent in PyCharm

mysql - UTF-8字符有问题;我看到的不是我存储的

mysql - 如何重写此 MySQL 查询以使用更少的内存?

javascript - 从数据库 mysql php 删除引导警报

c# - 如何在 C# 中将 unicode 字符转换为其等效的转义 ascii

python - 使用python从sqlite db读取unicode

php - SQL语句多对多

php - Mysql Max 函数不显示多条记录