Chris©: Mehrere Bedingungen

Beitrag lesen

Hallo Herr Ingenieur,

Wenn Du mit 'OR' arbeitest hoert die Datenbank bei einer Uebereinstimmung auf weil die WHERE-Klausel wahr wird.

Dann würde ich die Datenbank aber wegschmeißen.
MySQL nimmt eine vollständige Auswertung der Bedingungen in der where Klausel vor. Es wird eine Ergebnismenge geliefert und kein boolesches Ergebnis. Jedes Dataset, das eine der angereihten Bedingungen erfüllt, wird in die Ergebnismenge aufgenommen.

MySQL optimiert das Statement aber vorher, wenn möglich.
http://dev.mysql.com/doc/refman/5.0/en/where-optimizations.html

Und das, was hier folgt ist auch mal wieder Schwachsinn. Aber das war zu erwarten.

Du musst sie also anweisen alle Treffer zu suchen.
Z.B. so:
$result = mysql_query("SELECT id, ident, produkt FROM produkt WHERE id IN ('%$id1%', '%$id2%', '%$id3%')");

Das entspricht in keiner Weise der Aufgabe.

Bevor Du das nächste mal etwas zu MySQL postest, probiere es doch bitte wenigstens selber aus. Soviel Zeit muss sein, Herr Ingenieur.

G
Chris©