當使用GROUP BY 分組,默認返回的數據是組中最小的記錄即id最小的數據,
當開發中經常會需要分組后將最新的數據放在前面,
為了實現需求,使用了嵌套查詢,分別使用order by來排序
SELECT id, from_id, to_id, conversation_id, created_date, has_read, content FROM ( SELECT * FROM message WHERE from_id = 6 OR to_id = 6 ORDER BY created_date DESC) AS tt GROUP BY conversation_id ORDER BY created_date DESC
但執行結果依然是id最小的那條數據
最終添上limit max_size 后才生效
SELECT id, from_id, to_id, conversation_id, created_date, has_read, content FROM ( SELECT * FROM message WHERE from_id = 6 OR to_id = 6 ORDER BY created_date DESC limit 100) AS tt GROUP BY conversation_id ORDER BY created_date DESC