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_1mysql删除重复的数据保留一条
解决⽅案
使⽤MySQL的IN(...)⼦句,如下:
SELECT id, name, other_columns FROM messages WHERE id IN (SELECT MAX(id) FROM messages GROUP BY name);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。