ID dayNum dayName eventTypeID
-------------------------------------------
1 4 Wednesday 1
2 7 Saturday 1
对于eventTypeID
,我想选择包含未来或当前日期的行。今天星期四,那么如何才能返回dayName
星期六的行?
我只需要一个AND
语句用于以下查询:
SELECT *
FROM `events`
WHERE `eventTypeID` = 1
AND ??
dayNum
字段是每天的索引,其中星期一= 1
,星期六= 7
。
如果您能够得到答案,只需将当天的密码编码为5
(星期四)。我已经有了获得今天dayNum
的逻辑,而且这个问题与这个问题并不相关。
答案 0 :(得分:1)
我会按“差异”排序,然后按照这样限制1:
SELECT *
FROM events
ORDER BY MOD(dayNum - DAYOFWEEK(NOW()) + 7, 7)
LIMIT 1
你需要MOD 7所以如果当天是7,那么下一个最接近的那个应该是1,相当于(-6 MOD 7)。那里有一个额外的+ 7
,因为MySQL似乎希望在模数之后保持负数为负数。