[英]SQL Multiple filters in same columns for filtering product
我正在尝试从我的数据库中过滤产品。 我想要 select 产品,它们符合我的条件。
我有一张带有过滤器和指定产品的表格
筛选 | 价值 | product_id |
---|---|---|
Memory | 2048 | 1 |
牌 | 三星 | 1 |
Memory | 2048 | 2 |
牌 | 小米 | 2 |
现在我需要使用 (filter = 'Memory' AND value = '2048') AND (filter = 'Brand' AND value = 'Samsung') 过滤产品
这总是返回空行。
我正在使用 Mariadb 10.5
您可以使用聚合,并使用having
子句确保所有过滤器都通过:
select product_id
from t
where (filter = 'Memory' AND value = '2048') or
(filter = 'Brand' AND value = 'Samsung')
group by product_id
having count(*) = 2;
count(*) = 2
确保满足这两个条件(好吧,假设您在表中没有重复的行,这似乎是一个合理的假设)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.