gpt4 book ai didi

mysql - 当有 3 个日期列时按日期排序

转载 作者:行者123 更新时间:2023-11-29 05:30:25 25 4
gpt4 key购买 nike

我有两个表,CHECKINSTRIPS

我需要在这 2 个表中列出要排序的条目,最近的日期在顶部。

通常,我会简单地使用 JOIN 而不是用户 ORDER BY 日期列。

但这就是挑战; CHECKINS 中有一个日期列,VenueCreatedAt,而 TRIPS 中有两个日期列,TripDateStartedTripDateEnded

如果您能帮我处理一下,我将不胜感激。测试地址:

http://sqlfiddle.com/#!2/7f6055/33

最佳答案

怎么样:

SELECT * FROM TRIPS LEFT JOIN CHECKINS 
USING (MemberID) ORDER BY CheckInDateEntered ASC;

( http://sqlfiddle.com/#!2/7f6055/3 )

您还可以按优先顺序按逗号分隔的多个字段进行排序:

SELECT * FROM TRIPS LEFT JOIN CHECKINS USING (MemberID) 
ORDER BY VenueCreatedAt,TripDateStarted,TripDateEnded ASC;

( http://sqlfiddle.com/#!2/7f6055/10 )

如果这也不起作用,请查看 LEAST功能:

SELECT * FROM TRIPS LEFT JOIN CHECKINS USING (MemberID) 
ORDER BY LEAST(VenueCreatedAt,TripDateStarted,TripDateEnded) ASC;

( http://sqlfiddle.com/#!2/7f6055/15 )

但请注意,这只会按日期最短的一列进行排序。如果您想按每行(交替列)的最小值排序,也许以下三个其他问题中的任何一个都可以帮助您:

Order by max value in three different columns

Select Smallest Value From Multiple Columns with PHP/MySQL

Sorting a MySQL query with ORDER BY or with PHP sort functions

(它们都是关于按特定列集的每一行的最小值或最大值排序)

关于mysql - 当有 3 个日期列时按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368427/

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