【问题标题】:MySQL Query for Row with Most Recent DateMySQL 查询具有最近日期的行
【发布时间】:2018-03-21 00:21:13
【问题描述】:

假设我有一个名为“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 相关的最多行?

【问题讨论】:

  • signup_date 是 DATE 还是 VARCHAR?它看起来像 VARCHAR...

标签: mysql sql database date timestamp


【解决方案1】:

我会使用相关子查询:

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);

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

【讨论】:

    猜你喜欢
    • 2016-12-16
    • 2022-01-24
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多