我有这张桌子。我想过滤那些具有特定功能ID的ID。
+------------+-------------------+
| id | feature_id |
+------------+-------------------+
| 1280230 | 21 |
| 1280230 | 22 |
| 1280230 | 16 |
| 20412TH | 36 |
| 20412TH | 41 |
| 20412TH | 18 |
| 34173TH | 36 |
| 34173TH | 40 |
| 37282TH | 16 |
| 37282TH | 18 |
| 37282TH | 38 |
| 37282TH | 40 |
| 39341TH | 41 |
| 1244064 | 16 |
| 1244064 | 18 |
+------------+-------------------+
例如
具有功能21和22的ID => 1280230
具有功能16和18的ID => 37282TH,1244064
我写了以下查询,但这不能获取正确的结果。
SELECT `id`, `feature_id` FROM features WHERE `feature_id`=16 AND `feature_id`=18
有什么帮助吗?
单个记录不能同时具有2个不同的值。因此,您必须建立小组并查看整个小组。
SELECT id
FROM features
WHERE feature_id in (16,18)
group by id
having count(distinct feature_id) = 2
您需要按进行分组id
,然后仅采用具有feature_id
s的记录。通过该having
子句,您可以确保仅采用那些id
具有2 feature_id
s的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句