mysql - 查询通过多个值获取行
问题描述
例如,我有这样的表:
id_product | id_feature_value |
---|---|
1 | 60 |
2 | 60 |
1 | 40 |
2 | 10 |
我想获得不同的 id_products,其中 id_feature_value = 60 和 id_feature_value = 40 这只是一个例子,因为我需要按更多的 feature_values 过滤。
解决方案
如果您想要具有这两种功能的产品,您可以使用group by
and having
:
select id_product
from mytable
where id_feature_value in (40, 60)
group by id_product
having count(*) = 2
这假设没有重复。否则,您需要count(distinct id_feature_value) = 2
.
您可以轻松扩展它以处理每个产品的更多功能:您只需要扩展in
子句,并相应地修改子句中的文字编号having
。
推荐阅读
- elasticsearch - 在 Mirage 上连接 localhost 弹性搜索集群
- excel - 数据透视表对不同年份的月份进行排序
- c# - MultipartFormData 文件上传内存不足异常
- ruby-on-rails - 如何挽救控制器中的 ActiveRecord::RecordNotUnique 错误并重新渲染表单?
- ruby - 自定义液体块检索上下文变量
- powerbi - 测量抱怨列不存在时
- android - 如何向 HCE 设备发送命令 APDU?
- php - Q: Yii2 从数据库加载数据
- vb.net - VB.NET - 检查子节点是否在 TreeView 中选中
- python - 解决树莓派上的 Adafruit 库问题