我在为SQLALCHEMY API构建单元测试时遇到了一些问题。我注意到我的MySQL DB在请求按字符串列排序时返回了一个意外的顺序。一个小调查表明,我们的DB正在使用utf8mb4_cs_0900_as_cs。但是当尝试使用utf8mb4_0900_as_cs进行订购时,我得到了预期的订单。
有谁能告诉我这两种排序的区别是什么?
mysql> SELECT
-> column_0 AS name1
-> FROM
-> (VALUES
-> ROW('default_chanakah'),
-> ROW('default_aaa'),
-> ROW('default_zzz'),
-> ROW('default_hsunan'),
-> ROW('default_kourin1')
-> ) AS hardcodedNames
-> ORDER BY
-> name1
-> COLLATE utf8mb4_cs_0900_as_cs;
+------------------+
| name1 |
+------------------+
| default_aaa |
| default_hsunan |
| default_chanakah |
| default_kourin1 |
| default_zzz |
+------------------+
5 rows in set (0.00 sec)
mysql> SELECT
-> column_0 AS name1
-> FROM
-> (VALUES
-> ROW('default_chanakah'),
-> ROW('default_aaa'),
-> ROW('default_zzz'),
-> ROW('default_hsunan'),
-> ROW('default_kourin1')
-> ) AS hardcodedNames
-> ORDER BY
-> name1
-> COLLATE utf8mb4_0900_as_cs;
+------------------+
| name1 |
+------------------+
| default_aaa |
| default_chanakah |
| default_hsunan |
| default_kourin1 |
| default_zzz |
+------------------+
5 rows in set (0.00 sec)
1条答案
按热度按时间8yparm6h1#
utf8mb4_cs_0900_as_cs
是捷克语utf8(第一个cs表示),这个字母表包含“字母”Ch
,它在h
之后这就是为什么苏珊在亚拿卡之前
从https://en.wikipedia.org/wiki/Czech_orthography