因此,我想从此表中进行选择。基本结构是:
我想选择一个时间戳,并根据该时间戳等于在前端选择的任何日期进行排序。
例如:
SELECT Id FROM table WHERE DATE(Timestamp1) = 'datevariable'
OR DATE(Timestamp2) = 'datevariable' OR DATE(Timestamp3) = 'datevariable'
ORDER BY Timestamp1 (if it == 'datevariable'), Timestamp2 (if it == 'datevariable'), etc.
任何帮助将不胜感激。如果可能的话,我想将其保留在查询中,而不是在查询后执行(尽管这可能是我要做的事情)。
谢谢!
答案 0 :(得分:0)
如果您不关心多个列/时间戳匹配WHERE条件的情况-以下查询应该可以工作:
SELECT Id
FROM table
WHERE DATE(Timestamp1) = 'datevariable'
OR DATE(Timestamp2) = 'datevariable'
OR DATE(Timestamp3) = 'datevariable'
ORDER BY
CASE 'datevariable'
WHEN DATE(Timestamp1) THEN Timestamp1
WHEN DATE(Timestamp2) THEN Timestamp2
WHEN DATE(Timestamp3) THEN Timestamp3
END
根据您的评论:“我很可能使后一个时间戳取代前一个。” -您可能想取消订单
CASE 'datevariable'
WHEN DATE(Timestamp3) THEN Timestamp3
WHEN DATE(Timestamp2) THEN Timestamp2
WHEN DATE(Timestamp1) THEN Timestamp1
END