仅当列不为null/空时按分组

tpxzln5u  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(409)

我得到这个错误是由于GROUPBY语句。
sql语法有错误;查看与您的mysql服务器版本相对应的手册,了解“case when a.link!=”附近使用的正确语法然后a.filimo\u链接结束
我只想按时间分组 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`
fdx2calv

fdx2calv1#

试试这个。。

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'

希望有帮助。

nx7onnlm

nx7onnlm2#

在else部分中必须有group by的值,或者将other列与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`

相关问题