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之后代码不能正常工作
请知道如何解决这个问题?
答案 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