Blog

Het gebruik van if-structuren in mysql-selects

Vandaag had ik het probleem dat een klant agendagegevens wil laten weergeven. Maar deze mogen alleen maar getoond worden als de datum van de workshop nog niet gepasseerd is. Maar er wordt gebruik gemaakt van een begin- en soms van een einddatum. De workshop moet weergegeven worden zolang de einddatum niet gepasseerd is. Maar als er geen einddatum wordt opgegeven, mag er alleen naar de begindatum gekeken worden. Dit probleem wordt opgelost met een IF binnen in de select:

SELECT titel, inhoud, dateAS datum, einddate AS einddatum, locatie, inschrijven_toelaten
                FROM workshop_inhoud
                WHERE type_id = 2 AND (IF (einddate <> '0000-00-00', einddate >= CURDATE(), date >= CURDATE()))
                ORDER BY date 

2009-11-27