2010-06-04 23 views
0

我有这个作为一个SQL语句。它是做什么这是什么sql的

IF(`table`.`field1` IS NULL, 
    '', 
    GROUP_CONCAT(DISTINCT `table`.`field1` ASC SEPARATOR ',') 
    ) AS `MyNewFields`, 
+0

如果你给我们上下文出现,它会容易得多,帮助你。 – FrustratedWithFormsDesigner 2010-06-04 17:36:34

+0

@frustratedwithformsdesigner nice id :) – obelix 2010-08-16 02:42:48

回答

8

您提供将返回一个零长度字符串,如果TABLE.field1值为null SELECT子句的一部分。

如果该值不为空,它将使用GROUP_CONCAT function根据group by子句(我们看不到)的TABLE.field1值返回逗号分隔的字符串。示例输出:

MyNewFields 
------------- 
a,b,c 
+0

+1的写法与你大致相同,当我注意到你的回答 – 2010-06-04 17:41:03

+0

+1,OMG小马在SQL的东西之上 – JYelton 2010-06-04 17:49:10

0

里面的IF语句,它检查,看看表的字段1为空,如果是返回一个空字符串。如果不是,则调用GROUP_CONCAT扩展方法,该方法返回表中字段1中不同值的递增排序列表,并以逗号分隔。