一起使用SQL IN AND

时间:2012-03-02 16:19:35

标签: mysql sql relational-division

有没有办法一起使用IN和AND?问题是我想使用一列将我的查询与多个值匹配。

SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"

问题是我不能使用IN子句,因为它在值之间定义为OR。

3 个答案:

答案 0 :(得分:7)

尝试:

select product_id
from values
where value in ('large','short')
group by product_id
having count(distinct value) = 2

答案 1 :(得分:2)

不,那是不可能的,因为它根本没有任何意义。

字段不能同时等于两个不同的值。当y和z具有不同的值时,表达式x = y and x = z将始终为false。

(例外情况是某些文化中可能被认为是平等的一些文本值,例如thethé,但在这种情况下,这种比较仍然没有任何意义。)

答案 2 :(得分:-2)

没有。如果您以下面的方式使用查询,则IN和AND运算符都不同。

这个SQL没有任何意义。我只是想把错误的一个与正确的一个进行比较。     SELECT * FROM product INNER JOIN值USING(product_id)WHERE value =“large”AND value =“short”

SELECT * FROM product INNER JOIN values USING(product_id) WHERE value IN ("large","short");