MySQL的条件查询 - 复杂

问题描述:

我想获得不同值的字段,让说:字段1 ... 这需要像一个查询:“从表中选择不同的(字段1)”MySQL的条件查询 - 复杂

但是对于某些记录, field1是空的,并且有另一个字段是field1的替代字段,它是field2。对于field1为空的记录,我需要使用field2的值。我想我需要一个有条件的选择语句与如果控制类似的东西:

select distinct((if(field1!='') field1 else field2)) from table 

我不知道如何编写它。任何帮助表示赞赏...

+0

也许不是那么复杂:) – emre 2010-05-31 07:39:52

SELECT DISTINCT (
IF(coalesce(field1,'') <> '', field1, field2) 
) 
FROM table 

这两个空和空field1工作。

+0

谢谢!有用。 – emre 2010-06-01 13:59:11

SELECT DISTINCT IFNULL(FIELD1,FIELD2)FROM表

应该做的伎俩。

+0

您的解决方案返回64结果,而我的查询下面返回74!?!我分析结果以查看差异,并在稍后发布我的评论。 – emre 2010-05-31 07:45:01

我想我做到了(不知道结果是正确的):

SELECT DISTINCT (
IF(field1 <> '', field1, field2) 
) 
FROM table 
+1

NULL值和空字符串不一样。也许这解释了差异? – 2010-05-31 07:55:55