常用的方法
代碼如下 復制代碼 select * from table group by column_name order by id desc是不能得到每個分組裡面的id的最大的值的
解決方法:
有人寫出下面的語句:
代碼如下 復制代碼
SELECT *,max(dateline) as max_line FROM posts GROUP BY tid ORDER BY dateline DESC LIMIT 10
這條語句的沒錯是選出了最大發布時間,但是你可以對比一下 dateline 和 max_dateline 並不相等!(可能有相當
的情況,就是分組的目標記錄只有一條的時候!)
正確的辦法是:
代碼如下 復制代碼SELECT *,max(dateline) as max_line FROM posts GROUP BY tid HAVING dateline=max(dateline)ORDER BY
dateline DESC LIMIT 10
或
select * from (select * from table order by id desc ) t group by column_name order by id desc
這樣就
會得到每個分組裡面最大的id值了,並且最後的 order by id desc 是再對這些得到的id的值進行排序