MySQL數據庫中如何查詢分組后每組中的最后一條記錄


比如,在MySQL數據庫中,有數據表messages和數據記錄,如下:

Id Name Other_Columns
-------------------------
1 A A_data_1
2 A A_data_2
3 A A_data_3
4 B B_data_1
5 B B_data_2
6 C C_data_1


如果執行MySQL分組查詢語句,如下:

select * from messages group by name

 

則會返回所有按name分組的第一條數據,如下:

1 A A_data_1
4 B B_data_1
6 C C_data_1


那么,如何查詢按name分組后返回每組最后一條數據的MySQL語句呢,返回的結果如下:

3 A A_data_3
5 B B_data_2
6 C C_data_1

 

解決方案
使用MySQL的IN(...)子句,如下:

SELECT id, name, other_columns FROM messages WHERE id IN (SELECT MAX(id) FROM messages GROUP BY name);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM