Moin!
Das Problem liegt eindeutig in der Formulierung deiner Abfragebedingung. Du bist vollkommen fixiert auf "ODER" und behauptest, das müsste so sein.
Jetzt gilt aber folgender logischer Zusammenhang:
(!A oder !B) <==> !(A und B)
- Sven Rautenberg
SELECT * FROM kaugummis WHERE kleb=? AND rig=? AND (blub AND blase AND flubber) NOT LIKE '' ORDER BY ...
so? und stimmt die schreibweise so auch? habs noch nicht versucht.
Nein, du kannst die Verknüpfungen nicht kurz formulieren. Das, was in meinem Posting als "A" steht, ist der komplette Vergleich, also blub NOT LIKE "bla%"
.
Und verwende nicht LIKE, wenn du keine unscharfe Platzhaltersuche machen willst: blub != "bla"
In Summe:
SELECT * FROM kaugummis WHERE kleb=? AND rig=? AND (blub != '' AND blase != '' AND flubber != '') ORDER BY ...
So wäre die Syntax korrekt. Aber wozu jetzt noch die Klammern? Überflüssig, alles ist doch "AND"-verknüpft. Das ist dasselbe, als wenn alles addiert wird.
- Sven Rautenberg