0

我的表中有一些条目:

id txt
1 phone
2 phone
3 phone
4 Phone
5 Phone
6 PHONE
7 phone
8 aaa
9 ZZZ
10 ééé

我有这个要求

select * from table order upper(txt) collate utf8_bin

8 aaa 10 ééé 1 电话 2 电话 3 电话 4 电话 5 电话 6 电话 7 电话 9 ZZZ

我需要做另一个订单,其中条目 (1,2,3,4,5,6,7) 是一个敏感案例,前面有大写字母

我想要这个结果:

8 aaa
10 ééé
6 PHONE ===> CAPITAL
4 Phone ===> Capital
5 Phone ===> Capital
1 phone
2 phone
3 phone
7 phone
9 ZZZ

而且我需要使用 collat​​e collat​​e utf8_bin

4

1 回答 1

3

将此用作您的 ORDER BY 子句。这将首先排序所有 txt 不区分大小写,以按顺序获取所有名称。然后它将以 DESC 顺序区分大小写(二进制),以首先放置相同的小写名称。二进制排序会将大写字母放在小写字母之前,这就是您需要使用 DESC 的原因。

ORDER BY txt, binary(txt) DESC
于 2012-11-13T14:15:44.633 回答