Mindestens X der Bedingungen erfüllen

bazlivec

Mitglied
Hallo,

leider funktioniert der folgende Code nicht, wie er soll.

PHP:
SELECT *
FROM Sheet
WHERE B IN('Bla','Bla2','Bla3') OR C IN('Bla','Bla2','Bla3') OR D IN('Bla','Bla2','Bla3') > 2
ORDER BY A DESC

Das Ergebnis soll mindestens zwei (x) Bedingungen erfüllen.
Beispielsweise eine Zeile, in der sowohl "Bla", als auch "Bla2" oder "Bla3" vorkommt (oder auch alles).

Bitte um Hilfe :)

Besten Dank
bazlivec
 
Wird nicht besonders performant sein, aber das erste was mir eingefallen ist:

SQL:
SELECT *
FROM Sheet
WHERE (B IN ('Bla','Bla2','Bla3') + C IN ('Bla','Bla2','Bla3') + D IN ('Bla','Bla2','Bla3')) > 2
ORDER BY A DESC
 
Das will er so nicht haben ...

Code:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+ C IN ('Bla','Bla2','Bla3') + D IN ('Bla','Bla2','Bla3')) > 2 ORDER BY A DESC ' at line 3
 
Was mir noch einfallen würde *pseudo*
Code:
WHERE (B AND C) OR (C AND D) OR (B AND D)
Weil so wie ich das Topic verstanden habe willst du ja das 2 der 3 Bedingungen zutreffen ... oder doch was anderes ?
 
Das will er so nicht haben ...

Code:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+ C IN ('Bla','Bla2','Bla3') + D IN ('Bla','Bla2','Bla3')) > 2 ORDER BY A DESC ' at line 3

Ok, ich nehm an "+" hat eine höhere Priorität als "IN", also musst du die einzelnen noch Klammern.

Das was SPiKEe sagt geht denke ich auch, wäre quasi die ausgeschriebene Version aller Kombinationen.
 
Zurück