0

请注意,此问题与搜索(非)重音字符无关。

假设我有一个表,其中有一列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)

4

0 回答 0