Siechfred: SQL Auswahlfelder variiren

Beitrag lesen

Tag Baccu.

es stehen folgende Selectfelder zu Verfügung:
Geschlecht(Frau, Mann, Gruppe)
Augenfarbe(blau, grün, braun)
Haarfarbe(blond, braun, schwarz)
SELECT Geschlecht, Haarfarbe, Augenfarbe FROM UserProfil WHERE Geschlecht = '"+Geschlecht+"' AND Haarfarbe= '"+Haarfarbe+"' AND Augenfarbe = '"+Augenfarbe +"';

Du verwendest AND, was bedeutet, dass alle drei Bedingungen erfüllt sein müssen, damit das Statement ein Ergebnis liefert. Wählst du nur einen Eintrag aus, würde die Anfrage so aussehen:

SELECT spalten FROM tabelle WHERE Geschlecht='Frau' AND Haarfarbe='' AND Augenfarbe=''

Das findet alle Einträge, wo das Geschlecht 'Frau' ist und die Spalten Haarfarbe und Augenfarbe leer sind. Wenn du allerdings sowas machst:

SELECT spalten FROM tabelle WHERE Geschlecht='Frau' OR Haarfarbe='' OR Augenfarbe=''

bekommst du die Datensätze zurück, welche eine der drei Bedingungen erfüllen. Vorausgesetzt, dass die Spalten Haarfarbe und Augenfarbe nie leer sind, würde dir die o.g. Abfrage alle Frauen liefern. Nebenbei kannst du so auch alle Frauen mit blauen Augen finden. Weitere Infos: mySQL: logische Operatoren.

Siechfred

--
Zum Testen freigegeben: Siechfreds kleines Weblog
Wer Fehler findet, bitte an die angegebene E-Mail schicken. Danke.