2013-01-21 55 views
-2

我是新來的數據庫,並想知道如果我可以使用類似下面的語句:SQL我可以用「或」 /「和」 WHERE子句

SELECT * FROM Table Where Name = "abc" or "xyz" or "pqr"; 

我知道,這並未」噸工作,我需要找到名稱可能是其中任何一個表中的條目。

謝謝

+2

由於已經多次回答,這很容易。不想過於苛刻,我可以建議閱讀一本關於SQL的入門書籍嗎? –

回答

0
SELECT * FROM Table Where Name IN ('abc','yz','pqr') 
0
SELECT * FROM TABLE WHERE Field IN ('abc','xyz'); 

SELECT * FROM TABLE WHERE Field = 'abc' OR Field = 'xyz'; 
2

您必須再次使用列名這樣:

SELECT * FROM Table 
Where Name = "abc" 
OR Name = "xyz" 
OR Name = "pqr"; 

但在這種情況下,它多好做一個IN

SELECT * FROM Table 
Where Name IN ("abc","xyz","pqr"); 
2

您還沒有指定一個關係型數據庫(SQL服務器,Oracle,MySQL等...),但你需要每次都指定列名,就像這樣:

SELECT * FROM Table 
Where Name = 'abc' or Name = 'xyz' or Name = 'pqr'; 

這將是更有效的使用IN聲明它來寫,但是:

SELECT * FROM Table 
Where Name IN ('abc', 'xyz', 'pqr'); 
+0

+1:最後,解釋一個答案:) –

1

正確的語法與ANDOR使用的是:

SELECT * 
FROM Table 
Where Name = "abc" 
    or 
     Name = "xyz" 
    or 
     Name = "pqr" 

請注意,您需要限定每個子句的列名稱。

雖然你可以使用:

SELECT * 
FROM Table 
Where Name IN ("abc", "xyz", "pqr"); 
0

你得到一個錯誤的原因是OR運算符的每一側必須是計算結果爲布爾(true或false)的表達式。

這是你陳述的更正版本:

Select * from Table Where Name in ('abc', 'xyz', 'pqr') 

Select * From Table Where Name = 'abc' or name = 'xyz' or name = 'pqr'

你也可以使用IN子句中寫

+0

非常感謝所有的答案。這有很大的幫助:) – developer1