dedlfix: Suchabfrage funktioniert bei einem übergebenen POST-Wert nicht

Beitrag lesen

Hi!

Frage: Kann number.number gleichzeitig gleich '' UND wie %A123% sein?
Ja, das ist die Frage, deren Lösung ich suche ;-) .

Und warum findest du darauf keine Antwort?

Du meinst number.number soll entweder gleich '' ODER wie %A123% sein.
Ja.

Sag nicht einfach nur "Ja". Dieses "Ja" ist nämlich richtig. Du solltest dir nun überlegen, warum das richtig ist (abgesehen vom "entweder" in der Aussage).

Wenn number.number im Formularfeld mit dem Bezeichner 'exact' eingegeben wird, wird dazu auch der Treffer korrekt aufgeführt. Im Feld 'secondvalue' (vormals 'partial', da geschützter Bezeichner) und Feld 'other' bleibt auch frei.
Mache ich dasselbe allerdings mit 'secondvalue' und lasse 'exact' und 'other' frei, dann wird nichts ausgegeben.

Und was für SQL-Abfragen resultieren daraus? Welches Ergebnis liefern die beiden verknüpften Bedingungen?

Wenn number.number = '' nicht zutrifft (FALSE ergibt), weil in dem Feld etwas enthalten ist, dann werden weitere AND-Bedingungen gar nicht mehr ausgewertet, weil das Ergebnis bereits feststeht.

x | y | AND
---+---+-----
 F | F |  F
 F | T |  F
 T | F |  F
 T | T |  T

Wenn einer der beiden Operanden FALSE ergibt, ist das Ergebnis immer FALSE. Du bekommst nur dann ein TRUE (und damit einen gefundenen Datensatz), wenn beide Bedingungen zutreffen. Und kann number.number gleichzeitig leer und gefüllt sein? Und nun die ganze Überlegung nochmal mit OR. Anschließend solltest du, da du weitere Verknüpfungen in der Query hast, noch die Rangfolge der Operatoren beaachten.

Lo!