2010-05-08 35 views

回答

7

你的第二個陳述不會返回任何結果。記錄不能同時有option = ans和option = quest。

+0

我認爲你可以從你的聲明中刪除「可能」一詞:) – 2010-05-08 14:06:43

4

這不是一個「更好」方式的問題 - 只有第一個方法有效。即使你想在結果集中選擇= ans option = quest,WHERE子句每行執行一次。所以你告訴MySQL「給我一行選項=任務和選項= ans」,即選項是一次兩個值,這是不可能的。你實際上想要得到行是真的,這就是爲什麼你使用OR

我覺得這個更好的讀取:

SELECT * FROM tablename WHERE option IN('ans','quest'); 
2

如果代表問題的行具有option設置爲'quest',並回答行具有option設置爲'ans'那麼你應該使用option='ans' OR option='quest'";。另外一行不能代表問題和答案,因此使用AND將不會選擇任何行。

1

這個選擇將返回所有行衛生組織選項是ansquest

SELECT * FROM tablename WHERE option='ans' OR option='quest'"; 

這個選擇,另一方面,因爲一列將不返回任何行只有那些值之一

SELECT * FROM tablename WHERE option='ans' AND option='quest'"; 
0

如果你想讓你的搜索返回兩個答案和問題,請使用這個:

SELECT * FROM tablename WHERE option='ans' OR option='quest'; 

它也可以寫成:

SELECT * FROM tablename WHERE option in ('ans','quest');