Guten Abend alle zusammen,
ich hab mal ne knifflige Frage zu einer MySQL-abfrage, komme selber nich drauf. Ich habe eine Tabelle, die aus 3 Spalten besteht, in der ersten speichere ich die (oh wunder) id, ein auto_increment wert. In der zweiten speichere ich den PHP-timestamp der letzten Editierung, und in der dritten Spalte speichere ich das Datum, auf welches sich die ID bezieht.
(Die Tabelle wird für ein newssystem gebraucht, http://www.sueddeutsche-hengsttage.de, dann auf NEWS)
So sieht die Tabelle aus(der einfachheithalber habe ich die timestamps etwas gekürzt:
_____________
|ID|EDIT|DATE|
---------------
|1 | 1 | 1 |
|2 | 2 | 1 |
|3 | 3 | 1 |
|4 | 5 | 2 |
|5 | 6 | 1 |
|6 | 7 | 2 |
---------------
Die Abfrage sollte im besten Fall so enden, das folgende Reihenfolge der ID's entsteht:
6,4,5,3,2,1
und auf gut deutsch, sortiere zuerst nach DATE, absteigend, und innerhalb dieser sortierung sortiere bitte nach EDIT, ebenfalls absteigend.
Meine Versuche mit
"select id from database order by `date`,`edit` desc";
scheitern kläglich. erstmal sortiert die datenbank fleissig verkehrtherum, sprich die ID's mit DATE=1 stehen ganz oben, obwohl ich absteigend schreibe. 2 - 1 wäre absteigend, nich 1 - 2, da liege ich doch richtig??? sortiert man bloss "order by `DATE` desc", geht es ja auch, nur das dann nich korrekt nach EDIT sortiert wird.
Noch was zum System, das ganze läuft auf:
SUSE linux 8.1,
Mysql 3.23.52,
Die spalten hier sind alle drei als INT defininiert
Hat da jemand erfahrung oder einen Tipp? Wäre für alles hilfreiche dankbar.
mfg Martin aka Jamaica-man
ich hab mal ne knifflige Frage zu einer MySQL-abfrage, komme selber nich drauf. Ich habe eine Tabelle, die aus 3 Spalten besteht, in der ersten speichere ich die (oh wunder) id, ein auto_increment wert. In der zweiten speichere ich den PHP-timestamp der letzten Editierung, und in der dritten Spalte speichere ich das Datum, auf welches sich die ID bezieht.
(Die Tabelle wird für ein newssystem gebraucht, http://www.sueddeutsche-hengsttage.de, dann auf NEWS)
So sieht die Tabelle aus(der einfachheithalber habe ich die timestamps etwas gekürzt:
_____________
|ID|EDIT|DATE|
---------------
|1 | 1 | 1 |
|2 | 2 | 1 |
|3 | 3 | 1 |
|4 | 5 | 2 |
|5 | 6 | 1 |
|6 | 7 | 2 |
---------------
Die Abfrage sollte im besten Fall so enden, das folgende Reihenfolge der ID's entsteht:
6,4,5,3,2,1
und auf gut deutsch, sortiere zuerst nach DATE, absteigend, und innerhalb dieser sortierung sortiere bitte nach EDIT, ebenfalls absteigend.
Meine Versuche mit
"select id from database order by `date`,`edit` desc";
scheitern kläglich. erstmal sortiert die datenbank fleissig verkehrtherum, sprich die ID's mit DATE=1 stehen ganz oben, obwohl ich absteigend schreibe. 2 - 1 wäre absteigend, nich 1 - 2, da liege ich doch richtig??? sortiert man bloss "order by `DATE` desc", geht es ja auch, nur das dann nich korrekt nach EDIT sortiert wird.
Noch was zum System, das ganze läuft auf:
SUSE linux 8.1,
Mysql 3.23.52,
Die spalten hier sind alle drei als INT defininiert
Hat da jemand erfahrung oder einen Tipp? Wäre für alles hilfreiche dankbar.
mfg Martin aka Jamaica-man
Kommentar