pro_id | Category<br/>--------+---------<br/> 25 | electronics<br/> 27 | Electrical<br/> 25 | household<br/> 27 | electronics<br/> 25 | industrial
上面是我的数据库表。我想按类别过滤结果。如果“electronics”是所选类别,结果应包括产品 ID 25 和 27。这很容易。但我想按多个类别进行过滤。例如,如果我选择“electronics”和“household”,结果应该只有 product id 25。
最佳答案
请参阅此处示例:http://sqlfiddle.com/#!2/09028/7
通过 pro_id 将您的表格连接到自身,然后按类别过滤以选择具有两个类别的所有产品:
SELECT prod1.pro_id
FROM prod AS prod1
INNER JOIN prod AS prod2 ON prod1.pro_id = prod2.pro_id
WHERE prod1.Category = 'electronics'
AND prod2.Category = 'household';
选择至少具有一个类别的所有产品:
SELECT prod.pro_id
FROM prod
WHERE prod.Category = 'electronics'
OR prod.Category = 'household'
GROUP BY prod.pro_id;
关于mysql - SQL 按类别过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11057094/