globe: Mehrere Bedingungen

Beitrag lesen

n'abend,

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

Für diesen einen Datensatz wird die Überprüfung der folgenden OR-verknpüpften Selektionskriterien abgebrochen, wenn eine der Bedinungen nach true evaluiert, korrekt.

Du musst sie also anweisen alle Treffer zu suchen.

Wenn das so ist, sind meine Datenbanken wohl kap0tt. Meine Datenbanken geben mir nämlich alle, die Selektionskriterien erfüllenden, Datensätze aus. Wären meine Datenbanken kap0tt, fänd' ich das aber nicht so toll, weil ich dann (bei dir) nachfragen müsste, wie ich sie reparieren könnte...

-Ich suche aber aus einem Formular mit 3 Feldern id,ident,produkt nach einem Ergebnis. Die DB wird erst in Spalte id nach id gesucht wenn nicht vorhanden/ oder NULL wird Spalte ident nach ident gesucht wenn nicht vorhanden/ oder NULL eben nach Produkt. Klar bei einem Treffer hürt die Abfrage auf und giebt ein Ergebnis zurück, aber irgendwie funst das nicht.

SELECT antwort FROM selfhtml WHERE farbe = "rot" OR form = "rund";

Findet _alle_ Datensätze, die entweder rot und oder rund sind. Das sind potentiell ganz schön viele und definitiv keine Limitierung auf einen einzelnen Datensatz.

SELECT antwort FROM selfhtml WHERE farbe = "blau" AN form = "dreieck";

Findet _alle_ Datensätze, die blau und dreieckig sind. Das sind potentiell durchaus weniger, aber immer noch keine Limitierung auf einen einzelnen Datensatz.

Die Query, die du Eingangs zeigtest, erfüllt meiner Meinung nach die von dir angestrebte Bedingung. Hast du dir denn mal ausgeben lassen wie die Query zusammengesetzt (also mir den jeweiligen Werten für $id, $produkt, $ident) ausschaut? Sind da überhaupt die richtigen Werte an den richtigen Stellen?

In deinem Fall suchst Du nur nach einer ID wenn ich das richtig sehe oder?

Eigentlich sucht er nach allen Datensätzen, die eine der IDs $id1, $id2, $id3 haben. Noch eigentlicher sucht er nach Teil-IDs. Auch wenn er dank der Prozentzeichen »%« (welche in MySQL die Wildcard-Character Bedeutung haben, sofern in einer LIKE-Condition angewendet) vermutlich überhaupt keine Datensätze lokalisieren würde.

Danke, Ingo

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|