Py学习  »  DATABASE

如何在mysql中创建只显示最后一行的组?[重复]

Deepak Shinde • 5 年前 • 2860 次点击  

有一张桌子 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

如果我运行查询 select * from messages group by name ,得到的结果是:

1    A       A_data_1
4    B       B_data_1
6    C       C_data_1

什么查询将返回以下结果?

3    A       A_data_3
5    B       B_data_2
6    C       C_data_1

也就是说,应该返回每个组中的最后一条记录。

目前,这是我使用的查询:

SELECT
  *
FROM (SELECT
  *
FROM messages
ORDER BY id DESC) AS x
GROUP BY name

但这看起来效率很低。还有其他方法可以达到同样的效果吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40585
 
2860 次点击  
文章 [ 25 ]  |  最新文章 5 年前