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