我有一个mysql表,其中有一个数字列,该列引用一周中的一天模式。
1=周一至7=周日。
如果这一模式超过一周,那么这个数字还会继续增加,因此,周六将有13人和20人一样。
有人能帮助构建一个查询,查找与一周中某一天相关的所有数字吗?
发布于 2018-02-24 14:47:44
您可以使用MOD使在命中7之后,代表工作日圆周的数字返回到1。
select
weekday
, mod(weekday-1,7)+1
from test演示。
发布于 2018-02-24 15:01:21
您可以使用mod操作符作为@dasblinkenlight在他的回答中解释。要想得到当天的名字,请做:
select A.weekday, B.day FROM
(select
weekday,
mod(weekday-1,7)+1 actualWeekday
from test) A join (
select 1 weekday, 'MONDAY' day UNION ALL
select 2 weekday, 'TUESDAY' day UNION ALL
select 3 weekday, 'WEDNESDAY' day UNION ALL
select 4 weekday, 'THURSDAY' day UNION ALL
select 5 weekday, 'FRIDAY' day UNION ALL
select 6 weekday, 'SATURDAY' day UNION ALL
select 7 weekday, 'SUNDAY' day
) B on A.actualWeekday=B.weekday
order by A.weekday;请参阅演示
https://stackoverflow.com/questions/48964007
复制相似问题