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.
 

Neue Beiträge

Zurück