2013-03-07 56 views
-3

任何人都可以告訴我這個查詢有什麼問題嗎?這個代碼不工作:如何在mysql查詢中使用2個條件?

SELECT index_no FROM test_record_tbl WHERE year='2012' and year='2013'; 

此代碼工作:

SELECT index_no FROM test_record_tbl WHERE year='2012' or year='2013'; 
+1

閱讀關於「和」和「或」差,哥們 – bsiamionau 2013-03-07 07:07:10

+0

你說的不工作,你得到任何錯誤或沒有結果的情況下,1是什麼意思? – 2013-03-07 07:07:50

+0

如果沒有結果,則取決於您的「和」或「或」條件。 – 2013-03-07 07:08:38

回答

2

如果我理解你對,你想得到index_no哪條記錄屬於20122013

此問題通常被稱爲Relational Division

SELECT index_no 
FROM test_record_tbl 
WHERE year IN ('2012', '2013') 
GROUP BY index_no 
HAVING COUNT(DISTINCT year) = 2 
3

你失敗,因爲一年可以(大概)永遠是2012年和2013年

,是一個這意味着這兩個條件必須是真實的,才能將該陳述評估爲真實。

OR是指一個,或另一個或兩者

+0

我想從2012年和2013年獲取數據 如何更改它以獲取兩年的值 – 2013-03-07 07:18:53

0

andor之間的差。

您可以從未有2012年和2013年在同一時間,但一年可在一年下降無論是2012年或2013年。

這就是爲什麼你的第一個SQL查詢帶來了不結果,而第二沒有。