MYSQL查询AND子句

神秘

我有这张桌子。我想过滤那些具有特定功能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_ids的记录通过该having子句,您可以确保仅采用那些id具有2 feature_ids的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章