以敏感的大写字母排序

时间:2012-11-13 14:01:03

标签: mysql

我的桌子里有一些肠屎

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)collat​​e utf8_bin

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

我需要做另一个订单,对于enterie(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

和aloso我需要使用collat​​e collat​​e utf8_bin

1 个答案:

答案 0 :(得分:3)

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

ORDER BY txt, binary(txt) DESC