gpt4 book ai didi

php - MYSQL:使用 DAYNAME() 获取距今天最近的日期的数据

转载 作者:行者123 更新时间:2023-11-29 22:10:13 25 4
gpt4 key购买 nike

在我的 mySQL 数据库中,我有一个名为“day”的列。每次训练都有不同的日期 - 在此示例中,U12 队在周二和周四各训练一次。我想要的是获取最近 session 的数据(现在是星期二)。

SELECT * 
FROM training
WHERE `day` > dayname(now())
AND `group` = 'U12s'
ORDER by `day`
LIMIT 1

这会显示一个结果,但它是按字母顺序对“日”进行排序,因此结果是星期四而不是星期二。

我也尝试过

SELECT * 
FROM training
WHERE `day` > dayofweek(CURDATE())
AND `group` = 'U12s'
LIMIT 1

但这根本没有产生任何结果。

有什么建议吗?

JorgeCampos 的解决方案和语法错误:

                 SELECT * 
FROM training
WHERE `day` > dayname(now())
AND `group` = 'U12s'
ORDER BY CASE when `day` = 'Monday' then 1
when `day` = 'Tuesday' then 2
when `day` = 'Wednesday' then 3
when `day` = 'Thursday' then 4
when `day` = 'Friday' then 5
when `day` = 'Saturday' then 6
else 7 end case
LIMIT 1

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“case”附近使用的正确语法 第 11 行 LIMIT 1'

最佳答案

如果您的日期列是日期的名称,并且您的查询已经可以,但顺序错误,您只需将日期转换为可以根据需要排序的值:

SELECT * 
FROM training
WHERE `day` > dayname(now())
AND `group` = 'U12s'
ORDER BY CASE when `day` = 'Monday' then 1
when `day` = 'Tuesday' then 2
....
when `day` = 'Saturday' then 6
else 7 end
LIMIT 1

关于php - MYSQL:使用 DAYNAME() 获取距今天最近的日期的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31750846/

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