1
Ich habe eine Tabelle, die Zustände der Benutzersuche speichert. Es sieht wie folgt aus:Wie wähle ich MySQL-Zeilen aus, in denen die Bedingung in einer Tabelle gespeichert ist?
id | user_id | option | condition | value
------------------------------------------
4 | 2 | price | >= | 300000
5 | 2 | price | <= | 900000
6 | 4 | status | = | 1
7 | 4 | type | = | 1
8 | 5 | price | >= | 100000
9 | 5 | price | <= | 125000
10 | 5 | status | = | 2
11 | 5 | type | >= | 2
13 | 6 | price | >= | 200000
14 | 7 | price | >= | 500000
18 | 8 | price | <= | 600000
------------------------------------------
Nun, ich brauche alle user_id
wo price
Wert von 400000
passt in jede Zustandsbereich zu erhalten (pro Benutzer), OR status
1
Streichhölzer.
Also, für diese Abfrage sollte das Ergebnis 2,4,6,8
sein.
Alle Vorschläge sind willkommen!
UPD: http://sqlfiddle.com/#!9/ea73a4/1
können Sie wollen das Tabellenschema ändern Spalten zu haben wie 'PRICE_MIN, price_max'. Für einseitige Bereiche können Sie sehr große positive und negative Grenzen setzen. – Thilo
Danke für den Rat. Ja, es mag funktionieren, aber ich mache mir Sorgen wegen einer großen Anzahl von Optionen. Jetzt können etwa 20 Optionen gespeichert werden. Und sie können weiterwachsen. – WarGasm
Post ein sqlfiddle – Strawberry