2013-06-19 76 views
0

我嘗試從圖像表中檢索有效的團隊圖像。應該只有一個團隊圖像被驗證。下面的case語句的偉大工程時,收到的第一個圖像也被確認,但如果第一圖像是無效的和所接收的第二驗證......我得到一個空字符串MySQL CASE聲明問題

CASE 
    WHEN taskcode = 0 AND validated = 1 
    THEN imgRenamed 
    ELSE NULL 
    END AS teamImg 

以另一種方式來概括。

  1. 一個團隊圖像接收和驗證(上述正常工作)接收
  2. 一個團隊圖像,無效(上述正常工作)
  3. 相同#2,但第二圖像接收和驗證(上述返回NULL)

我還應該注意,這兩個圖像的問題將有一個任務代碼爲0,它只是一個將被標記爲無效,第二個標記有效。

這是否足夠幫助我瞭解情況#3中出現問題的信息?

感謝

+0

'CASE'語句不用於選擇返回哪些行,這是在'WHERE'子句中完成的。 – Barmar

+0

請顯示您的表格結構和您的完整SELECT查詢。那麼幫助你更容易。 – Ruben

回答

1

您需要包括在此聚集,是這樣的:

select max(CASE WHEN taskcode = 0 AND validated = 1 
       THEN imgRenamed 
       ELSE NULL 
      END) AS teamImg 
from . . . 
group by teamId 

沒有聚集,MySQL的通常選擇從一行的條件任意值。換句話說,這些條件並不適用於所有行,僅適用於其中的一行。

+0

謝謝戈登!這似乎工作得很好! –