首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql中带有case的Order表

Mysql中带有case的Order表
EN

Stack Overflow用户
提问于 2021-08-06 10:28:14
回答 1查看 27关注 0票数 0

我怎样才能按下列方式订购表:

  1. 第一次为这一天与订单meet_time ASC
  2. 会面,然后再与订单meet_date ASC
  3. 会面,之后再与订单meet_date meet_date

会面

代码语言:javascript
复制
ORDER BY CASE WHEN `meet_date`="2021-08-06" AND `meet_time`>="12:14" THEN 1 WHEN `meet_date`>"2021-08-06" THEN 2 WHEN `meet_date`="2021-08-06" AND `meet_time`<"12:14" THEN 3 WHEN `meet_date`<"2021-08-06" THEN 3 END ASC, `meet_date` ASC,`meet_time` ASC 

我试着使用这个查询,但我有问题的订单最后一组(过去的会议) DESC。

代码语言:javascript
复制
meet_id meet_date meet_time meet_type
40  06.08.2021  15:09   pozyskanie mieszkania
38  06.08.2021  17:09   pozyskanie mieszkania
969 17.08.2021  00:59   pozyskanie-mieszkania
967 19.08.2021  12:00   prezentacja
44  17.09.2021  12:09   pozyskanie mieszkania
42  18.09.2021  12:09   pozyskanie mieszkania
39  19.09.2021  12:09   pozyskanie mieszkania
848 25.01.2005  10:05   pozyskanie-mieszkania
656 30.07.2020  05:30   prezentacja
655 30.07.2020  15:30   pozyskanie-mieszkania
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-06 11:13:11

测试这个:

代码语言:javascript
复制
ORDER BY CASE WHEN meet_date = CURRENT_DATE 
              THEN 1
              WHEN TIMESTAMP(meet_date, meet_time) < CURRENT_TIMESTAMP 
              THEN 2
              ELSE 3 END,
         CASE WHEN meet_date <= CURRENT_DATE 
              THEN TIMESTAMP(meet_date, meet_time) + 0
              ELSE DATEDIFF(CURRENT_DATE, meet_date) END

表达式1按类别进行排序(今天、之后、之前)。

表达式2在类别中提供单独的排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68680100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档