MySQL 查询具有最近日期的行

标签 mysql sql database date timestamp

假设我有一个名为“signup_info”的表,如下所示:

p_key_id    name    gender    signup_date
1           Bob     male      10/5/17
2           Mary    female    9/23/14
3           Jamie   female    2/6/15
4           Jamie   male      3/22/17

我如何编写一个查询,只为我提供与每个人名实例的最新signup_date有关的最多行?

最佳答案

我会使用相关子查询:

select si.*
from signup_info si
where si.signup_date = (select max(s2.signup_date) from signup_info si2 where si2.name = si.name);

如果p_key_id是自动递增的,那么它可能提供一种更可靠的方式来获取最新的:

select si.*
from signup_info si
where si.p_key_id = (select max(s2.p_key_id) from signup_info si2 where si2.name = si.name);

如果某人在同一日期注册两次,则第一次注册将返回该人的重复行。

关于MySQL 查询具有最近日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652405/

相关文章:

sql - 计算每个多边形中的点数

mysql - 这个查询给出了重复的记录,这个查询有什么问题?

javascript - AngularJS 从 SQLite 数据库中填充选择下拉列表

PHP更新功能不起作用

MySQL 正则表达式搜索 json

php - 实际有值时sql语句返回null

php - 安装 Drupal 7 时的数据库配置

sql - 我们可以通过一个查询从具有公共(public) id 的五个表中获取数据吗?

java - 如何在具有不同行的多对一关系字典表中?

sql - 如何将 SQL 结果条目旋转到列中(透视)