gpt4 book ai didi

sql - MySQL中的条件排序?

转载 作者:可可西里 更新时间:2023-11-01 07:46:02 26 4
gpt4 key购买 nike

我有包含 3 个字段的“任务”表:

  1. 日期
  2. 优先级 (0,1,2)
  3. 完成 (0,1)

我想要实现的是整个表按完成标志排序,未完成的任务应按优先级排序,而已完成的任务应按日期排序:

  1. 从按完成升序排列的任务中选择 *
  2. 如果 done=0 则另外按优先级 desc 排序
  3. 如果 done=1 额外按日期 desc 排序

是否可以在没有联合的情况下在 MySQL 中执行此操作?

谢谢。

最佳答案

您可以尝试 ORDER BY (done asc, aux desc),其中 aux 是使用 CASE 计算的,以根据 的值产生优先级或日期完成(您可能必须将它们转换为相同的类型以适应相同的表达式,例如,将日期转换为合适的整数天数)。

例如:

SELECT * FROM tab
ORDER BY done desc,
case done
when 0 then prio
else to_days(thedate)
end desc;

关于sql - MySQL中的条件排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1084362/

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