gpt4 book ai didi

MYSQL 按天排序埋在字符串中

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:16 25 4
gpt4 key购买 nike

我有一堆行,其中有一个名为“title”的字段,其数据如下所示:

Friday  8:00AM - Hunter Arena 2
Wednesday 7:30AM - West Grass Field
Thursday 8:00AM - Hunter Arena 1
Saturday 8:00AM - Hunter Arena 1
Wednesday 8:00AM - Hunter Arena 2

我希望在一周中的每一天订购。 (我假设这将涉及解析字符串,然后进行某种日期排序)MYSQL 查询是否可行?

提前致谢-J

最佳答案

一个选择是创建一个保存表(临时的,永久的,您的选择!),其中包含您的某种工作日及其权重。

CREATE TEMPORARY TABLE WkDayWeight (weekday varchar(100), orderWeight int); 
INSERT INTO WkDayWeight (weekday, orderWeight)
SELECT 'Monday',1
UNION ALL SELECT 'Tuesday',2
UNION ALL SELECT 'Wednesday',3
UNION ALL SELECT 'Thursday',4
UNION ALL SELECT 'Friday',5
UNION ALL SELECT 'Saturday',6
UNION ALL SELECT 'Sunday',7

然后您可以从您的列中提取第一个词(即找到星期几),并加入工作日排序权重的持有/引用表。

SELECT  * 
FROM MyTable AS m
INNER JOIN WkDayWeight AS d
ON d.weekday = SUBSTRING_INDEX(m.MyColumn,' ',1)
ORDER BY d.orderWeight

实际上有一个能够自然排序的 datetime 列要好得多。

另一种选择:您可以通过创建可以执行相同操作的用户定义函数来实现此目的。然后,您可以在您的 ORDER BY 中调用 UDF,但性能有问题。该函数将查找/引用工作日的重量。

  ORDER BY MyWeekdaySortingFunction(m.MyColumn)

关于MYSQL 按天排序埋在字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5524319/

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