Mysql 仅当列不为null/空时分组依据

Mysql 仅当列不为null/空时分组依据,mysql,codeigniter,Mysql,Codeigniter,由于GROUPBY语句,我得到了这个错误 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“CASE WHEN a.link!=”附近使用的正确语法然后a.filimo_链接结束 我只想在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

由于GROUPBY语句,我得到了这个错误

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“CASE WHEN a.link!=”附近使用的正确语法然后a.filimo_链接结束

我只想在
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`

在else部分中必须有group by的值。或者将其他列与group by组合使用

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`
试试这个

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'

希望有帮助。

您想按未选择的项目分组。祝你好运。