赞
踩
今天突然發現,以前用的一個max()函數取group by分組后最新一條數據的方法有問題。。。
例如,查每位作者最新發佈的文章信息,我的測試數據:
max()方法的查詢結果,查出來的時間是最新的沒錯,但id title content author都還是group by查詢默認的第一條數據,以前沒發現大概是因為前面字段的值都相同吧。。。
另一個網上很流傳但在我這行不通的方法是:先按時間倒序排序,再分組查詢
正確的結果應是id為2 5的數據。
因為在mysql5.7后子查詢的排序已經失效了, 爲什麽失效呢。。。可能因為子查詢的結果不需要排序吧。。
所以這樣就等效于 SELECT * FROM test GROUP BY `author`
方法一:對子查詢進行limit限制,適用於明確數據量不會超過多少的場景,否則查不到全部數據。
方法二:前提是數據表設計id自增
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。