【发布时间】:2019-01-08 15:11:36
【问题描述】:
有一个表TableX(id, user_id, sticky_date, created_at)
其中很少有条目具有固定日期。
我试图得到结果,
result 将包含所有具有 sticky_date 顺序 desc 的条目,然后所有剩余条目按 created_at 顺序排列。
我尝试了以下查询,
(SELECT * FROM TableX ORDER BY sticky_expiry_date)
UNION
( select * from TableX order by created_at desc)
但是在 union created_at 没有按预期工作之后。有没有办法在单个查询中做这些事情。
【问题讨论】:
-
你可以在
order bystackoverflow.com/a/19487675/2845389中使用case statement -
但是 union created_at 没有按预期工作你能显示示例数据,你得到的结果和预期的结果吗?
-
SELECT * FROM TableX ORDER BY sticky_expiry_date, created_at desc -
i.stack.imgur.com/iC18o.png @jens 在这个结果中应该是 1,3,2 因为 created_at 的顺序在结果集中是错误的。
标签: mysql