订单 table 大小写 Mysql

Order table with case in Mysql

如何通过以下方式订购 table:

  1. 今天第一场演出按顺序 meet_time ASC
  2. 演出结束后,下几天会见订单 meet_date ASC
  3. 过去几天的演出后有订单 meet_date DESC
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 的顺序有疑问。

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

测试一下:

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 提供类别内的单独排序。