订单 table 大小写 Mysql
Order table with case in Mysql
如何通过以下方式订购 table:
- 今天第一场演出按顺序 meet_time ASC
- 演出结束后,下几天会见订单 meet_date ASC
- 过去几天的演出后有订单 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 提供类别内的单独排序。
如何通过以下方式订购 table:
- 今天第一场演出按顺序 meet_time ASC
- 演出结束后,下几天会见订单 meet_date ASC
- 过去几天的演出后有订单 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 提供类别内的单独排序。