Case in mysql
känguru
- datenbank
0 dedlfix
hallo zusammen,
ich habe eine Tabelle, in der diverse Spieltage mit Start- und Enddatum hinterlegt sind.
z.B.:
id | text | start | end
1 | irgendwas | 2013-07-09 | 2013-07-10
2 | nochmal | 2013-07-04 | 2013-07-05
Nun möchte ich, nach Ende des Spieltages, noch einen Tag lang den vergangenen Tag anzeigen, danach soll der nächste in Zukunft stattfindende Spieltag gezeigt werden.
Mit PHP würde ich nun Abfragen, ob gestern ein Spieltag war, wenn ja, alles gut, wenn nicht dann:
die nächste Abfrage ob heute ein Spieltag ist, wenn ja alles gut, wenn nicht dann:
den nächsten Spieltag abfragen
und für den Notfall, wenn es keinen weiteren Spieltag gibt, wieder den letzten ausgeben lassen
Nun habe ich vor, das ganze von der DB rechnen zu lassen und mir schwebt dort eine IF-konstruktion vor, allerdings finde ich dazu keine vernünftigen Beispiele oder stelle mich zu dumm an.
Im Prinzip so etwas wie
IF(SELECT * FROM ENDDATUM WHERE END = CURDATE){
SELECT * FROM ENDDATUM WHERE END = CURDATE
}elseif(SELECT * FROM ENDDATUM WHERE END = CURDATE-1){
SELECT * FROM ENDDATUM WHERE END = CURDATE-1
}usw.
Kann mir dort jmd auf die Sprünge helfen und/oder mir eine gute Seite mit vernünftigen Beispielen nennen?
Danke im vorraus
Känguru
Tach!
Im Prinzip so etwas wie
IF(SELECT * FROM ENDDATUM WHERE END = CURDATE){
SELECT * FROM ENDDATUM WHERE END = CURDATE
}elseif(SELECT * FROM ENDDATUM WHERE END = CURDATE-1){
SELECT * FROM ENDDATUM WHERE END = CURDATE-1
}usw.
Auf diese Art und Weise geht das nur mit einer Stored Procedure. Ansonsten können immer nur ein einzelne Statements (abgesehen von UNION) formuliert werden. Dafür gibt es aber mit den Control Flow Functions ein paar Möglichkeiten.
dedlfix.