请注意,此问题与搜索(非)重音字符无关。
假设我有一个表,其中有一列name
,带有排序规则utf8mb4_unicode_ci
。
这种排序规则非常适合
以区分大小写、区分重音的方式选择基本选择。
问题是我需要以区分重音和区分大小写的方式对结果进行排序。
这样做的目的是选择以某个字符/字符串开头的每个名称并“按字母顺序”对它们进行排序,首先应该不重音,然后重音。
从选择例如:
Črpw
Cewo
céag
čefw
最终结果应该是:
Cewo
céag -- because accented e is more than non-accented
čefw
Črpw -- because r is more than e
请注意c
/ C
< č
/ Č
,但小写/大写的处理方式相同。
我尝试搜索这个问题,但是只有弹出类似的问题或关于搜索的问题,事实并非如此,搜索本身很好。
从提到我已经尝试过这个测试查询:
SELECT * FROM
(SELECT 'Črpw' as t
UNION SELECT 'Cewo'
UNION SELECT 'céag'
UNION SELECT 'čefw')virtual
ORDER BY t COLLATE utf8mb4_czech_ci ASC
这会产生与我想要的非常相似的东西
céag
Cewo
čefw
Črpw
但请注意,é
之前已订购e
。
有没有办法获得我想要的结果顺序?
使用:MySQL 5.5.54 (Debian)