mysql - 找不到合适的 MySQL 排序规则来区分 a 和 á

标签 mysql search collation

我的数据库中有像 a 和 á 这样的符号。当我设置排序规则 utf8_general_ci 时它们是相同的,而当我选择 unf8bin 时它们是不同的。 我想让它们保持不同,但不区分大小写搜索。是否可以使用一些默认排序规则?

最佳答案

抱歉,MySQL 中没有针对 utf8(或 utf8mb4)的排序规则。

SHOW COLLATION LIKE '%cs'; 将列出其他编码(latin1 等)中的少量 _cs 排序规则。

您可以使用这些的一些组合,但它们的成本很高:

WHERE UPPER(x) = UPPER(y)
WHERE x = y COLLATE utf8_bin

在德语中,ß 可能有问题:

mysql> SELECT 'ß' = 'ss' COLLATE utf8_unicode_ci;
+-------------------------------------+
| 'ß' = 'ss' COLLATE utf8_unicode_ci  |
+-------------------------------------+
|                                   1 |
+-------------------------------------+

关于mysql - 找不到合适的 MySQL 排序规则来区分 a 和 á,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127771/

相关文章:

postgresql - UTF8 Postgresql Create Database Like MySQL(包括字符集、编码、lc_type)

mysql - MySQL 中的 Propel 和二进制字符串

search - LDAP搜索过滤多个组-squid

php - 是否可以只搜索一页?

iphone - Objective-C - 比 NSCaseInsensitiveSearch 更好的搜索?关键词? NSPredicate?

mysql - Powershell 哈希表和重复键

mysql - SQL:获取与日期时间最近的 N 行

MySQL 查询 - 计算有多少用户注册了事件(男性和女性)

mysql - 如何使用knexjs从mysql返回插入的数据?

java - SQL Server 排序规则以匹配 Java 不区分大小写的 Unicode 比较