MySQL select 来自多个列的最新

MySQL select most recent from multiple columns

我有一个包含多个日期列的 table,以下是我的 table 列的示例:tbl.user_idtbl.date_1tbl.date_2 , tbl.date_3

我需要想出一个查询 return user_idmost_recent_date 其中大多数 most_recent_date 是 date_1 之间的最近日期, date_2 和 date_3。我想我需要一个嵌套的 select ,但我无法理解它的逻辑。我希望有人能在这里为我指明正确的方向。

你试过Greatest()函数了吗?

这是一个简单的例子:

SELECT
    userId,
    greatest(dt1, dt2, dt3)
FROM testTbl;

您可能已经像在大多数编程语言中那样尝试过 Max() 函数。然而,在SQL中,Max是一个聚合函数。您只能在其中指定一个字段,它将 return 该列中的最大值,根据您的 GROUP BY 分组。

mySQL 中的 Greatest() 函数等同于大多数其他语言中的 Max() 函数。