Как написать запрос MySql с несколькими порядками данных? - PullRequest
1 голос
/ 04 ноября 2011

Я работаю над заявкой на организацию. Здесь у меня есть некоторые события в таблице базы данных. Теперь требования клиентов к их представлению следующие.

  1. Первое событие должно быть сегодняшним (если оно есть)
  2. Тогда предстоящие события должны быть с сегодняшней даты. Как если бы сегодня 01-11-2011, то следующее событие должно быть 02-11-2011 (если есть) а следующий должен быть 03-11-2011 и так далее ...
  3. Как только все предстоящие события будут перечислены, вы можете отобразить старые события.

Мне просто интересно, смогу ли я выполнить эту задачу всего за один Запрос. Можете ли вы предложить мне какой-нибудь запрос?

Вот структура таблицы. enter image description here

В настоящее время у меня есть этот запрос.

SELECT * FROM tbl_event ORDER BY event_date DESC;

Это приложение в среде Codeignitor, а MySql - это тип базы данных.

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011
SELECT ...
...
ORDER BY (event_date = curdate()) DESC,    // today's events
     (event_date > curdate()) DESC, // future events
     event_date DESC; // past events
1 голос
/ 04 ноября 2011

Что-то вроде этого может быть?

SELECT * FROM tbl_event ORDER BY event_date DESC WHERE DATE(event_date) = DATE(NOW()) UNION SELECT * FROM tbl_event ORDER BY event_date DESC WHERE event_date >= NOW() UNION SELECT * FROM tlb_event ORDER_BY event_date DESC WHERE event_date < NOW()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...