如何使用自定义排序方法对MySQL进行排序?

时间:2016-06-15 20:14:51

标签: php mysql sorting sql-order-by collation

我有

SELECT revision 
FROM   table 
WHERE  id = 4 
ORDER  BY revision DESC 
LIMIT  1; 

暂时忽略限制条款,结果如下:

Returns   |   I want
--------------------
   Z      |    AD   //with LIMIT clause this is what's returned 
                    //& what I seek is the first row
                    //provided it's sorted properly
   Y      |    AC       
   X      |    AB 
   W      |    AA 
   ....   |    Z    
   B      |    Y    
   A      |    X    
   AD     |    ....     
   AC     |    C    
   AB     |    B    
   AA     |    A

可以用MySQL完成吗?

我的目标是按上述方式对数据进行排序。数据进入PHP,我可以在那里对其进行重新排序,但我很好奇是否可以直接从MySQL执行此操作。

1 个答案:

答案 0 :(得分:1)

按字符长度desc排序,然后按字母顺序排序。

SELECT revision 
FROM   table 
WHERE  id = 4 
ORDER  BY CHAR_LENGTH(revision) DESC, 
          revision DESC 
LIMIT  1;