有一个包含三列的表:col1是主要的INT,col2和amp; col 3是UNIQUE和INT。
我需要选择col1,col2和col3等于const1的行,col2和
col3不等于零。
以下查询是否正确?
注意:为属性使用了有意义的名称,并为此处给出了
的值仅限行政目的。
SELECT * FROM table WHERE col1 = const OR col2 = const OR col3 = const AND (coll2 <> 0 AND col3 <> 0);
const可以是任何INT值
答案 0 :(得分:5)
不,查询不正确。这是正确的:
SELECT *
FROM table
WHERE
const1 IN (col1, col2, col3)
AND 0 NOT IN (col2, col3)
<强>更新强>
您的查询会查找col2&lt;&gt;的所有行0和col3&lt;&gt; 0并附加一列或多列等于const
的所有行答案 1 :(得分:1)
我很困惑,但基于此:
What I basically need to do is to select those rows that match a particular const values, and such that the const value, and / or attribute values is / are not zero
我认为你想要的是:
SELECT *
FROM table
WHERE
(col1 = const1 or col2 = const1 or col3 = const1) and (col1 != 0 and col2 != 0 and col3 are !=0)
据我所知,至少有一列需要匹配const,但它不能为零