【问题标题】:MYSQL Combine Two Date Fields And Then Order BYMYSQL 合并两个日期字段,然后按顺序排序
【发布时间】:2011-11-23 16:24:43
【问题描述】:

我在 MYSQL 中有 2 个表,它们将通过外键连接。每个表都有自己的日期字段。我想做的是将这两个日期字段组合在一起,然后按组合信息排序。我知道您可以按多个字段排序,但我认为这不能将它们结合起来。

示例

Join by tickets.ticket_id = ticket_history.ticket_id

表 1

机票日期

表 2

ticket_history_date

目标合并两个日期字段,然后按合并日期对行进行排序

【问题讨论】:

  • 你想如何组合它们?能给我们举个例子吗?
  • 结合是什么意思? 2个日期总是一样的吗?如果不是,你将如何结合 2 个日期?如果它们相同,则无需组合它们,只需按其中一个排序,然后它将按另一个排序...不是吗?

标签: php mysql database


【解决方案1】:

假设您想要两个日期中的最新日期,您可以这样做

SELECT
    [some info],
    GREATEST( ticket_date, ticket_history_date ) as latest_date
FROM
    [tables and join]
ORDER BY
    latest_date

如果您想要最早的日期,您可以使用LEAST 而不是 GREATEST。如果其中一个日期可能为 NULL,那么您可能需要查看 COALESCE

【讨论】:

【解决方案2】:

UNION 查询允许您组合 2 个或更多“选择”查询的结果集。它会删除各种“选择”语句之间的重复行。

UNION 查询中的每个 SQL 语句在具有相似数据类型的结果集中必须具有相同数量的字段。

UNION 查询的语法是:

选择字段 1、字段 2、。字段_n 从表 联盟 选择字段 1、字段 2、。字段_n 来自表格;

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多