only_full_group_by无权限时的规避
Posted codingcheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了only_full_group_by无权限时的规避相关的知识,希望对你有一定的参考价值。
工作要求选取每个用户id的最近更新时间
由于数据库设计存在问题,每次更新都是直接写入,所以一个用户存在多个更新时间
由于数据库的sql_mode是only_full_group_by
在没有权限修改数据库sql_mode的情况下,无法得到结果,根据网上搜索到的结果要采用如下语句
SELECT * FROM (SELECT * FROM posts ORDER BY dateline DESC) BIAOMING GROUP BY tid ORDER BY dateline DESC LIMIT 10
这种写法也会报错
为了绕开only_full_group_by,我采用了如下写法:
select * FROM table a left JOIN (select userid,max(uploadDate) as lastupdate from table a GROUP BY userid) t0 ON t0.userid= a.userid where a.uploadDate = t0.lastupdate
这样有个问题,如果相同的userid和相同的uploadDate则会出现多条,还是无法只显示一条
当然,在代码里可以用list接受,但如何用纯粹的sql筛选一条,有大神知道请留言教我,谢谢
以上是关于only_full_group_by无权限时的规避的主要内容,如果未能解决你的问题,请参考以下文章