こんにちは、MySQL クエリについて質問があります。
次の表があります。
product_properties <-- table name
+------------------------------------------+
| id | property | value | productid | <-- field names
+------------------------------------------+
| 1 | example | 230 | 3 | +-- rows
| 2 | power | 110 | 3 | |
| 3 | voltage | 1.2 | 4 | |
| 4 | example | 240 | 4 | |
| 5 | example | 320 | 6 | |
| 6 | power | 100 | 4 | |
| 7 | power | 110 | 6 | +
+------------------------------------------+
フィルタ クエリを作成したいと考えています。例えば:
'230' と一致する 'example' を含むすべての製品を見たいとします。これは1つのアイテムを返します、私は使用しています:
SELECT * FROM product_properties WHERE property='example' AND value='230';
それは簡単でしたが、「230」に一致する「例」と「110」に一致する「電力」を含むすべての製品を表示したいと思います。
私は次のことを試しました:
SELECT * FROM product_properties WHERE property='example' AND value='230' AND property='power' AND value='110';
SELECT * FROM product_properties WHERE property='example' AND value='230' OR property='power' AND value='110';
最初のクエリの問題は、空が返されることです。2 番目のクエリの問題は、プロパティ 'example 230,240,320' を持つ製品も返されることです。
私の質問は、これを使用する最善の方法は何ですか、または動的な製品プロパティ テーブルを作成するべきではありませんか?