MySQL按符号首选项排序

时间:2010-03-23 20:45:30

标签: mysql sorting sql-order-by collation

我想知道在进行ORDER BY时是否有办法让字母数字字符的优先顺序高于符号。

即。 'a'来之前'('

这有很多方法,但我更喜欢最优雅的数据库方法。

1 个答案:

答案 0 :(得分:0)

这将为您提供所需的输出。

SELECT <column_name> 
FROM <table_name> 
ORDER BY CASE 
           WHEN <column_name> REGEXP '^[a-z]' OR <column_name> REGEXP '^[A-Z]' THEN CONCAT('1',<column_name>) 
           WHEN <column_name> REGEXP '^[0-9]' THEN CONCAT('2',<column_name>) 
           ELSE CONCAT(3, <column_name>) 
         END;

首先会占用字母,然后是数字,最后是其他字符。