2016-06-15 15 views
0

IWie kann ich MySQL Daten mithilfe einer benutzerdefinierten Sortiermethode sortieren lassen?

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

Ignorieren der limit-Klausel für einen Moment haben, sind hier die Ergebnisse:

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 

dies mit MySQL kann getan werden?

Mein Ziel ist es, die Daten wie oben sortiert zu haben. Die Daten kommen in PHP, wo ich sie neu sortieren kann, aber ich war neugierig, ob ich das direkt von MySQL aus tun könnte.

Antwort

1

Nach Zeichenlänge Desc, dann Alphabet sortieren.

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

yep das funktioniert. – Dennis