【问题标题】:MySQL Order By Symbol PreferenceMySQL 按符号偏好排序
【发布时间】:2011-01-31 00:02:56
【问题描述】:

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

I.E. 'a' 出现在 '(' 之前

有很多方法可以解决这个问题,但我更喜欢最优雅的数据库方法。

【问题讨论】:

标签: mysql sorting sql-order-by collation


【解决方案1】:

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

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;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多