获取Grouped Mysql查询中的最后一个ID

时间:2017-11-22 09:43:14

标签: php mysql

SELECT * 
  FROM 
     ( SELECT * 
         FROM notifications 
        ORDER   
           BY id DESC
     ) t 
 WHERE t.userTo = '".$myId."' 
 GROUP 
    BY t.postId
     ,  t.dataId
     ,  t.type

我使用上面的代码尝试在对行进行分组之前按降序对表进行排序,这样我就会得到每个组中的最后一行,而是获得第一行。

代码在Mysql5.5.8中工作正常,但在升级运行MySQL5.7.14的WAMP SERVER之后代码不能正常工作

请知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试此查询

SELECT n.*
FROM notifications n
JOIN
  (
    SELECT postId,dataId,type,MAX(id) LastID
    FROM notifications
    WHERE userTo='...'
    GROUP BY postId,dataId,type
  ) l
ON n.postId=l.postId AND n.dataId=l.dataId AND n.type=l.type AND n.id=l.LastID
ORDER BY n.id DESC

SQL小提琴 - http://sqlfiddle.com/#!9/4436b9/3