Axel Richter: SQL Auswahlfelder variiren

Beitrag lesen

Hallo,

In Mysql und mit PHP geht das beispielsweise so:
$sql = "SELECT * FROM tabelle WHERE
  IF('$geschlecht'='', 1, '$geschlecht'=Geschlecht) AND
  IF('$augenfarbe'='', 1, '$augenfarbe'=Augenfarbe) AND
  IF('$haarfarbe'='', 1, '$haarfarbe'=Haarfarbe)";

Warum sollte man diese Entscheidungen der Datenbank überlassen, wenn man mit der Programiersprache weitaus kürzere und damit schnellere Queries erstellen könnte? Man muss mit der Programmiersprache ohnehin arbeiten, um die Rückgabewerte des Formulars erst mal zu entschärfen und zu prüfen. Dann kann man auch gleich den richtigen Query zusammen bauen.

[1] P.s. für Insider: Hier ist die berühmte IF-Funktion im Einsatz zu sehen, die es ja eigentlich gar nicht gibt :-)

Warum sollte es die in bestimmten SQL-Dialekten nicht geben? Man muss nur wissen, welchen Dialekt die Datenbank spricht.

viele Grüße

Axel