gpt4 book ai didi

mysql - 如何合并同一个表中的两个有序查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:32 25 4
gpt4 key购买 nike

我有带列的事件表'标题','描述','开始日期','结束日期'。

我想获得有序的现场和 future 事件列表,取决于“开始日期”和“结束日期”。

我试试

(
select *
from `events`
where `start_date` < NOW() and `end_date` > NOW()
order by `start_date` desc
)
union all
(
select *
from `events`
where `start_date` > NOW()
order by `start_date` desc)

但结果不是我想要的顺序。我希望首先按 start_date 现场事件排序列表,然后按 start_date future 事件排序列表。

最佳答案

我认为你不需要联合。只需在您的基本查询中加入一个 OR 条件即可。

然后,要将结果拆分为 “this is live”“this one is future”,您可以使用标志

SELECT *, start_date < NOW() AS flag 
FROM `events`
WHERE (`start_date` < NOW() and `end_date` > NOW())
OR `start_date` > NOW()
ORDER BY flag DESC, start_date

注意:DESC 在这里是为了向您展示您希望在未来事件之前直播。否则只需输入 ASC

关于mysql - 如何合并同一个表中的两个有序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40133020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com