作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 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/
我是一名优秀的程序员,十分优秀!