У меня есть таблица под названием months
- она содержит все 12 месяцев календаря, идентификаторы соответствуют номеру месяца.
Я буду запускать запрос, чтобы получить 2 или 3 последовательных месяца из этого таблица, например
- апрель и май
- июнь, июль, август
- декабрь и январь
Однако я хочу убедиться, что всякий раз, когда декабрь - это январь и извлекается, он извлекает их в указанном порядке, а не с января по декабрь. Вот что я пробовал:
SELECT * FROM `months`
WHERE start_date BETWEEN <date1> AND <date2>
ORDER BY
FIELD(id, 12, 1)
Это работает для декабря и января, но теперь, когда я пытаюсь получить январь и февраль, он выполняет их в неправильном порядке, то есть «Февраль - Январь» - I ' Я догадываюсь, потому что мы указали 1
в ORDER BY
в качестве последнего значения.
Кто-нибудь знает правильный способ добиться этого? Как я уже упоминал, это также должно работать в течение 3 месяцев, поэтому, например, «ноябрь, декабрь, январь» и «декабрь, январь, февраль» следует извлекать все в таком порядке.