2011-10-30 52 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