Hey is het mogelijk om in een sql query een soort van IF statement te gebruiken?

"INSERT INTO tabel1 (nummer) VALUES('0')"

Dat je dan zeg maar in de query zegt dat die value dus groter moet zijn als 1 en anders NULL invult...
Nee.
Jawel hoor, dan kan prima. Daarvoor kun je een CASE gebruiken. Hier een voorbeeldje:


INSERT INTO tabel1(nummer)
VALUES(
  CASE
    WHEN $_POST['getal'] > 1 THEN $_POST['getal']
    ELSE NULL
  END
)

Hierbij is $_POST['getal'] de waarde die uit een formulierveld komt.

Getest en goed bevonden!
Eigenwijze Sebastiaan ook altijd :)

Ik wist wel dat het kon, maar nog nooit mee gewerkt, SQL blijkt echt ontzettend veel te kunnen, alleen wete de meeste PHP'ers het gewoonweg niet.
Volgens mij kan het nog beter door gebruik te maken van een CONSTRAINT. Hiermee bescherm je de database nog beter, dan wordt deze voorwaarde een eigenschap van de tabel. Welke query je er ook tegenaan gooit, je krijgt er nooit een andere waarde in dan dat is toegestaan.

Je moet voor dit soort dingen alleen wel bij een echte database terecht, MySQL ondersteunt dit niet. Voor meer informatie kun je bij een echte DBA terecht, bij mij is het meer dat verhaal van die klok en die klepel die je op laag water moet zoeken.
Oké, ik wacht op PHPEriks SQL tut :-)

Reageren