码迷,mamicode.com
首页 > 其他好文 > 详细

only_full_group_by无权限时的规避

时间:2018-05-15 17:33:46      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:only   list   根据   无法   多个   user   ast   代码   table   

工作要求选取每个用户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无权限时的规避

标签:only   list   根据   无法   多个   user   ast   代码   table   

原文地址:https://www.cnblogs.com/codingcheng/p/9041540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!