有没有办法同时使用 IN 和 AND ?问题是我想使用一列将我的查询与多个值匹配。
SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"
问题是我不能使用 IN 子句,因为它定义为值之间的 OR。
有没有办法同时使用 IN 和 AND ?问题是我想使用一列将我的查询与多个值匹配。
SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"
问题是我不能使用 IN 子句,因为它定义为值之间的 OR。
尝试:
select product_id
from values
where value in ('large','short')
group by product_id
having count(distinct value) = 2
不,这是不可能的,因为它根本没有任何意义。
一个字段不能同时等于两个不同的值。当 y 和 z 具有不同的值时,表达式x = y and x = z
将始终为假。
(例外情况是某些文本值在某些文化中可能被视为相等,例如the
and thé
,但在这种情况下比较仍然没有任何意义。)
不,如果您以下列方式使用查询,IN 和 AND 运算符都是不同的。
这个 SQL 没有任何意义。我只是想比较错误的和正确的。SELECT * FROM product INNER JOIN values USING(product_id) WHERE value = "large" AND value = "short"
SELECT * FROM product INNER JOIN values USING(product_id) WHERE value IN ("large","short");