我有一张表格如下:
在这里,我想运行一个如下所示的查询:
SELECT model_id
FROM model_attributes
WHERE ((attributes_id=2 and attributes_value='32mb')) AND ((attributes_id=4 AND attributes_value='5.00 inch') OR (attributes_id=4 and attributes_value='6.00 inch')) AND ((attributes_id=5 and attributes_value='here') OR (attributes_id=5 and attributes_value='asfdsdf'))
返回model_ids 8, 9
。但似乎我不能在同一领域放置多个条件。
我还试过this帖子中的解决方案仍然没有!我怎样才能得到这个结果?我使用AND
子句的方式不正确,但类似于我想在查询中实现的逻辑。
答案 0 :(得分:2)
你要求的是attributes_id为2和4和5的行,这些行永远不会成立。
试试这个:
WHERE (attributes_id=2 AND attributes_value='32mb') OR
(attributes_id=4 AND attributes_value in ('5.00 inch', '6.00 inch') OR
(attributes_id=5 AND attributes_valuein ('here', 'asfdsdf')
答案 1 :(得分:0)
SELECT model_id
FROM model_attributes
WHERE ((attributes_id=2 and attributes_value='32mb')) or ((attributes_id=4 AND attributes_value='5.00 inch') OR (attributes_id=4 and attributes_value='6.00 inch')) or ((attributes_id=5 and attributes_value='here') OR (attributes_id=5 and attributes_value='asfdsdf'))
将and
改为or
,我认为and
在逻辑上是错误的