2017-08-21 1 views
0

Hallo Ich habe eine Tabelle data_table .I brauchen alle Titel aus dem Tabelle.Die Titelfeld (Typ varchar) wie alphanumerische Daten enthalten, erhalten unterMy SQL-Sortierung varchar Feld mit numerischen Teil

title 
--------- 
ab 2007 
ab 2017 
ba 2018 
ba 2017 
cd 2017 
cd 2016 

meine Wunsch Ausgang ist

title 
--------- 
ba 2018 
ab 2017 
ba 2017 
cd 2017 
cd 2016 
ab 2007 

ich von CAST .Aber versucht Ergebnis

SELECT title, CAST(title as SIGNED) AS casted_column FROM data_table ORDER BY `title` DESC 
+1

Heimlich, ich glaube, du weißt was zu tun ist – Strawberry

Antwort

1

Verwenden RIGHT letzten 4 Stellen zu erhalten und warf sie dann in unsigned und sortieren es

SELECT title 
from tbl 
order by cast(right(title,4) as unsigned) desc, title desc 
1

wenn Ihr tit nur knapp sein Ziel erhalten erforderlich le Ende immer mit 4-stelligen könnten Sie substr für die Nummer erhalten und in verwenden Art

 SELECT title 
     FROM data_table 
     ORDER BY substr(`title`, -4) DESC , title DESC 
Verwandte Themen