Antje Hofmann: (MYSQL) abfrage in verbindung mit and und or...

Beitrag lesen

Hallo Matthias

Du hast eher ein logisches als ein SQl- Problem. In deiner Abfrage fehlen einfach Klammern.

ABFRAGE:

name=hans
SELECT namea,nameb,haus,ort,zugriff FROM tabelle WHERE namea=$name OR nameb=$name AND zugriff=2 OR zugriff=1

Wenn ich dich richtig verstehe, möchtest du folgendes Wissen:

wenn namea oder nameb Hans ist und zusätzlich zugriff=1 oder zugriff=2 ist dann...

du fragst aber:
wenn (namea Hans ist) oder (nameb hans und zugriff=1) oder (zugriff=2)

bei der Abfrage nach Hans erfüllt nur die erste Zeile diese Bedingung
ansonsten taucht ja Hans nicht als namea auf und zugriff wird niemals 2

anders bei Werner in Zeile 1 existiert zugriff=1 und in den anderen Zeilen ist Werner jeweils namea
Deshalb die 3 Zeilen als Ergebnis.

Deine Abfrage sollte also lauten:

SELECT namea,nameb,haus,ort,zugriff FROM tabelle WHERE (namea=$name OR nameb=$name) AND (zugriff=2 OR zugriff=1)

Viele Grüße

Antje