Вопросы

MySQL ORDER BY FIELD на месяцы

У меня есть таблица с названием months — она ​​содержит все 12 месяцев календаря, идентификаторы соответствуют номеру месяца.

Я буду запускать запрос, чтобы получить 2 или 3 последовательных месяца из этой таблицы, например

  • Апрель Май
  • Июнь Июль Август
  • Декабрь и январь

Однако я хочу убедиться, что всякий раз, когда декабрь является январем и извлекается, он извлекает их в этом порядке, а не с января по декабрь. Вот что я пробовал:

SELECT * FROM `months`

WHERE start_date BETWEEN <date1> AND <date2>

ORDER BY
    FIELD(id, 12, 1)

Это работает для декабря и января, но теперь, когда я пытаюсь получить январь и февраль, он выполняет их в неправильном порядке, например, «февраль — январь» — я предполагаю, потому что мы указали 1 в ORDER BY в качестве последнего значения.

Кто-нибудь знает правильный способ добиться этого? Как я уже упоминал, это также должно работать в течение 3 месяцев, поэтому, например, «ноябрь, декабрь, январь» и «декабрь, январь, февраль» следует извлекать все в указанном порядке.

Читать:
Laravel красноречивый множественный принадлежит к раздаче

Я не понимаю. Ваш вопрос касается января и февраля, но ваш запрос относится к декабрю и январю!?!   —  person MAXIM    schedule 09.05.2020

Я думаю, нам нужен вопрос, более направленный на реальную проблему   —  person MAXIM    schedule 09.05.2020

Как вы передадите список номеров?   —  person MAXIM    schedule 09.05.2020

Похожие записи

Окно PowerShell при запуске из пакетного файла

admin

Как получить доступ к кросс-региональной корзине s3 с помощью лямбда-выражения с помощью CDK Python

admin

Крестики-нолики — Возвращение отмеченного квадратного числа

admin

Symfony и easyadmin: как работать с зависимыми объектами?

admin

google-cloud / firestore: ошибка: 4 DEADLINE_EXCEEDED: крайний срок превышен при создании документа

admin

Не настроено RegionEndpoint или ServiceURL

admin