mysql - SQL 按类别过滤

标签 mysql sql

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/

相关文章:

javascript - 上传文件完成后如何禁用php中选择文件上传的按钮?

mysql - 如何在所有表和所有列中查找字符串?

php - 使用多个分隔符/字段分隔符将 CSV 文件导入 Mysql

php - 从 php 表行传递参数

sql - 如何在三个条件下连接两个表?

mysql - 在 SQL 查询中选择加入计数

php - “<a>”链接无法包含在表列字段中?

SQL 2005 从文件中获取数据

sql - SQL Server 2008存储过程中如何操作ntext类型的数据

sql - 用于在 SQL Server 2005 中更新存储过程中的表的 if-else 条件