2011-10-30 76 views
1

我需要給我的客戶發佈一些職位有相同的名字在不同類別中的選項選擇不同。 CMS是關閉的,我不能再添加字段... 有一個備用字段,我可以用它來識別帖子爲相同的,但我不會不會在確切的帖子將加載的情況(帖子在我的情況是圖像)。MySQL的 - 如果不爲null

所以我想我的客戶可以爲所有相同職位指定相同的「場」。

的問題是該字段默認爲空。如果我將使用不同的,只有一個結果將來自所有非同一職位(他們都默認= NULL)...

有沒有辦法來選擇不同的「場」,如果不爲空?

我試圖尋找和反覆試驗與上面,但它並沒有爲我工作...

查詢本身是很簡單的...

SELECT id,introtext,publish_up,publish_down 
from #__content 
WHERE catid IN(936,937,940,959,972,988,991) AND state = 1 
    AND (publish_up = "0000-00-00 00:00:00" OR publish_up <= "2011-10-30 12:12:59") 
    AND (publish_down = "0000-00-00 00:00:00" OR publish_down >= "2011-10-30 12:12:59") 

--removed duplicated query 

歡迎任何線索或方向... 謝謝! Yanipan

回答

1

哪個字段默認爲NULL?我只是將它命名爲X,並且可以相應地更改它:

SELECT DISTINCT id,introtext,publish_up,publish_down,IFNULL(X,id) AS distinct_field 
from #__content 
WHERE catid IN(936,937,940,959,972,988,991) AND state = 1 
AND (publish_up = "0000-00-00 00:00:00" OR publish_up <= "2011-10-30 12:12:59") 
AND (publish_down = "0000-00-00 00:00:00" OR publish_down >= "2011-10-30 12:12:59") 

我希望我說得對!

+0

看起來不錯。從來沒有聽說過IFNULL,但我想你每天都會學到新的東西:)我會盡快嘗試(當我到辦公室時)並讓你知道它是如何去的。謝謝! – Yanipan

+0

OK,它還挺作品,但結果並不明顯,這意味着我得到了現場distinct_field如果不爲空,但它仍然得到一排每一個在數據庫中,即使採用相同的不同領域......我只需要一個來自不是空的每個distinct_field ... – Yanipan

+0

您不希望任何具有introtext字段值NULL的行? – wisefish

2
select introtext from #__content group by introtext where introtext is not null; 
+0

一個小錯誤的位置:其中組之前的推移 – wisefish

+0

對不起,任何機會,你能解釋一下分組如何能夠更換不同?我沒有完全明白...謝謝你的回覆! – Yanipan