SQL Select语句针对索引为UNIQUE的属性

时间:2012-02-16 13:33:59

标签: sql select

有一个包含三列的表: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值

2 个答案:

答案 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,但它不能为零