嗨,我对 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”匹配的“示例”的所有产品。这将返回一项,我使用的是:
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';
第一个查询的问题是,它将返回空,我明白了。第二个查询的问题是,它还返回具有属性“示例 230,240,320”的产品。
我的问题是最好的使用方法是什么,或者我不应该创建一个动态产品属性表吗?