我需要在mysql中过滤一个表,但是无法通过开头。 该表有两个字段:
ID_house house_feature
1 1
1 2
1 4
1 5
2 1
2 3
2 4
3 1
3 2
3 3
我需要使用以下参数过滤此表:
house feature = 1
AND
house feature = 2
AND
house feature = 3
这样我就可以获得所有要求的房屋。 我已经尝试创建类似于此的东西:
SELECT *
FROM houses
WHERE
house_feature = 1
AND
house_feature = 2
AND
house_feature = 3
但它没有像我预期的那样奏效。 有没有办法用MySQL获得这个结果? 似乎我只使用OR运算符过滤表,但这样我无法得到正确的结果。
提前感谢您的帮助。
tony
答案 0 :(得分:1)
你可以通过匹配每个房子的不同特征数量来实现,所以具有这三个特征的房子将被退回
SELECT *
FROM t
WHERE
house_feature IN(1 ,2,3)
group by ID_house
having count(distinct house_feature) = 3