2016-09-08 9 views
0

Vielen Dank für das Lesen meiner Frage.Sortieren von Daten nach Jahr dann Monat in PHP/Sql

Meine MySQL-Datenbank ist für meinen Plattenladen.

Ich habe eine Tabelle mit den 700 Datensätze genannt darin

Meine Felder sind Künstler, Titel, usw. RELEASE_DATE

Die RELEASE_DATE ist varchar und eingegeben und gespeichert als mm/yyyy

dh 01/2003 = jan 2003

dh zz/1997 = Laufe des Jahres 1997 - einige Datensätze haben nicht einen Monat

ich in der Lage sein wollen, s oder dann die Datensätze in der Reihenfolge des Jahres anzeigen, und dann den Monat in meinen Ergebnissen. Das heißt, ich kann dem Besucher eine Liste der Top 10 der letzten Aufzeichnungen zeigen. Wenn ein Datensatz mit zz beginnt, dann wäre es der letzte in der Reihenfolge der Liste für dieses Jahr.

ein Beispiel Sortierergebnisse wäre also:

11/2001

06/2001

zz/2001

09/2000

01/2000

zz/2000

Jede Hilfe wird geschätzt!

Vielen Dank

Matt.

+0

Bitte kennzeichnen Sie Ihre Frage mit der Datenbank, die Sie verwenden. –

+0

Erstellen Sie eine andere Spalte und speichern Sie das Datum richtig 'YY/mm/dd' mit'/dd' optional oder '00' oder ein Standard. – AbraCadaver

+0

danke abrakadaver, aber ich will nicht durch 700 Einträge gehen müssen und sie in Unix-Format ändern ... Es würde ewig dauern! – matt

Antwort

2

In MySQL können Sie tun:

order by right(release_date, 4) desc, 
     left(release_date, 2) + 0 desc; 

Ein Hinweis auf den zweiten Schlüssel. Dies konvertiert den Monat in eine Zahl. Der Wert zz wird in 0 umgewandelt, da keine führenden Ziffern vorhanden sind.

Verwandte Themen