我想知道在进行ORDER BY时是否有办法让字母数字字符的优先顺序高于符号。
即。 'a'来之前'('
这有很多方法,但我更喜欢最优雅的数据库方法。
答案 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;
首先会占用字母,然后是数字,最后是其他字符。