編碼的世界 / 優質文選 / 歷史

Mysql之group by 和order by 一起用時的排序問題


2021年11月01日
-   

業務需求,需要查詢表裏不同分類下的order最大的記錄。
查看表中的記錄:
SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen
WHERE tid IN(7512, 7514)
ORDER BY `order` DESC ;

結果如下:
排序的sql語句:
SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen
WHERE tid IN(7512, 7514)
GROUP BY tid
ORDER BY `order` DESC ;

 返回的結果:
 不是自己想要的結果。
執行下面的sql:
SELECT id,tid,`order`,FROM_UNIXTIME(yestime) FROM (
SELECT * FROM tfen WHERE tid IN(7512, 7514) ORDER BY `order` DESC
) AS t
GROUP BY tid;

 
返回的結果:
這兩條才是最終的結果。

熱門文章