首页 > 解决方案 > 如何从数据库mysql中选择特定列中具有相同和最新值的所有行

问题描述

我想选择在特定列中具有相同和最新时间​​的所有行,即time1. 下图简要介绍了我的问题。请指导我。先感谢您。

在此处输入图像描述

标签: mysqlsqldatabase

解决方案


这是一个依赖于 window function 的解决方案,RANK()自 MySQL 8.0 起可用:

SELECT *
FROM (SELECT id, name, time1, RANK() OVER(ORDER BY time1 DESC) rnk FROM mytable) x
WHERE rnk = 1

内部查询为每条记录分配一个排名,按时间降序排序;最高的领带获得相同的排名,1。然后外部查询仅过滤具有 rank 的记录1


推荐阅读