仅当列不为空/空时为GROUP BY

时间:2018-09-28 09:52:39

标签: mysql codeigniter

由于GROUP BY语句,我收到此错误。

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'CASE WHEN a.link!=''THEN a.filimo_link END

附近使用

我只想在a.link不为空时分组。所以不要空着。我的查询出了什么问题

SELECT b.name as name, a.title, a.id
FROM (`all_media` a)
LEFT JOIN `admins` b ON `b`.`id`=`user_id`
WHERE `a`.`approved` =  0
GROUP BY `a`.`link` CASE WHEN a.link !='' THEN a.link END
ORDER BY `a`.`filename`

2 个答案:

答案 0 :(得分:0)

在其他部分应该具有分组依据的价值。或者将其他列与分组依据结合使用。

SELECT b.name as name, a.title, a.id
FROM (`all_media` a)
LEFT JOIN `admins` b ON `b`.`id`=`user_id`
WHERE `a`.`approved` =  0
GROUP BY `a`.`link` CASE WHEN a.link IS NOT NULL THEN a.link ELSE '' END
ORDER BY `a`.`filename`

答案 1 :(得分:0)

试试这个..

SELECT b.name as name, a.title, a.id
FROM (`all_media` a)
LEFT JOIN `admins` b ON `b`.`id`=`user_id`
WHERE `a`.`approved` =  0
GROUP BY `a`.`link` HAVING a.link IS NOT NULL
ORDER BY `a`.`filename'

希望有帮助。