在Mysql中的同一列中进行多次检查

时间:2018-01-16 11:30:11

标签: mysql

我有一张表格如下:

enter image description here

在这里,我想运行一个如下所示的查询:

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子句的方式不正确,但类似于我想在查询中实现的逻辑。

2 个答案:

答案 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在逻辑上是错误的