select GROUP_CONCAT(ifnull(real_name,user_name)) from users where st_id=a.st_id
哪位大神解释一下这句sql的意思,划线的地方有点不明白???谢谢
你不懂的应该是IFNULL()函数和group_concat()函数吧?
首先是IFNULL函数:
比如:IFNULL(real_name,user_name)
如果real_name不是NULL,返回real_name,否则它返回user_name。
假设real_name不是NULL的话 那你的这个SQL在执行完IFNULL函数后应该是:
select GROUP_CONCAT(real_name) from users where st_id=a.st_id
group_concat()函数的话可以参考这个文章:
拿到名字 ,做成用逗号 分隔的字符串 类似 " 张三,李四,王五"
IFNULL(real_name,user_name)
如果real_name不是NULL,返回real_name,否则它返回user_name。
假设real_name不是NULL的话 那你的这个SQL在执行完IFNULL函数后应该是:
select GROUP_CONCAT(real_name) from users where st_id=a.st_id
group_concat()函数的话可以参考这个文章:
ifnull(expr1,expr2)
假如expr1不为NULL,则IFNULL()的返回值为expr1; 否则其返回值为expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境
可以参考这个:http://jingyan.baidu.com/article/6b182309516bc5ba58e159f0.html