2014-02-24 237 views
0

返回錯誤的值使用下面的查詢,我需要在本月「02」,只顯示標有年份「2014」的記載:MySQL查詢在where子句

SELECT DISTINCT 
c.sno, 
c.cCode, 
c.caseNumber, 
c.dateOriginalInstitution, 
c.date_remanded, 
c.plaintiff, 
c.respondant 
FROM 
    cases c, 
    chronologicallists ch 
WHERE (
(YEAR(dateOriginalInstitution) = '2014' AND MONTH(dateOriginalInstitution) = '02') 
OR 
(YEAR(dateOfTransferInstituion) = '2014' AND MONTH(dateOfTransferInstituion) = '02') 
OR 
(YEAR(date_restored) = '2014' AND MONTH(date_restored) = '02') 
) 
AND c.inTheCourt = '578' AND c.sno = ch.caseSno 

enter image description here

我m仍然在2011和2012年的結果集?

請幫我這個。

+2

顯示'dateOfTransferInstituion'列,我猜它必須有「2014」記錄。 – Rikesh

+0

也許你應該使用'LIKE'子句中有比較,如果'dateOfTransferInstitution'也有類似的期待日期戳'dateOriginalInstitution'例如'dateOriginalInstitution LIKE「2014-02 - %」' – pythonian29033

回答

5

這是因爲你的OR條件。

你可能得了year2014在任何dateOfTransferInstituiondate_restored列,但不是在dateOriginalInstitution

+0

因爲我已經檢查了我的列有在所有其他日期列中,只有dateOriginalInstaitution列具有正確的日期值時,它只不過是0000-00-00而已?所以,它應該只顯示與dateOriginalInstitution列相關的記錄。 –

+1

在結果集中顯示帶有所述列的示例記錄。例如查詢:'其中2014年(年(dateOriginalInstitution),一年(dateOfTransferInstituion),一年(date_restored))和 '02' 在(本月(dateOriginalInstitution),月(dateOfTransferInstituion),月(date_restored選擇dateOriginalInstitution,dateOfTransferInstituion,從案件date_restored ))' –

+0

是的,你是對的,現在的岩石...感謝的FancyPants –

0

有負責該dateOriginalInstitutiondateOfTransferInstituiondateOfTransferInstituion 3列,你應該檢查

使用AND代替的OR和心靈,以顯示dateOfTransferInstituion讓你知道,如果 他們通過你的WHERE條件。

WHERE (
(YEAR(dateOriginalInstitution) = '2014' AND MONTH(dateOriginalInstitution) = '02') 
AND 
(YEAR(dateOfTransferInstituion) = '2014' AND MONTH(dateOfTransferInstituion) = '02') 
AND 
(YEAR(date_restored) = '2014' AND MONTH(date_restored) = '02') 
+0

沒有,當我使用「ADN」沒有要顯示的,因爲我會那麼where子句中搜索相同的值什麼,得到的記錄將顯示爲空白。 –