Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выборка предыдущего и следущего события
Форумы портала PHP.SU » » Работа с СУБД » Выборка предыдущего и следущего события

Страниц (1): [1]
 

1. snikers987 - 28 Января, 2012 - 19:23:44 - перейти к сообщению
Имеется таблица в которой среди прочих есть поле тип - date
Как выбрать по этом полю, предыдущее событие и следущее?
При условии что события бывают не каждый день и если есть событие на текущий день, то в значении следующего получить событие текущего дня.

Изменение типа поля не рассматривается, так как это уже функционирующая система и искать где это вылезет в планы не входит.


Задачу решил двумя запросами:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM `events` WHERE event_date >= CURRENT_DATE();
  3. SELECT * FROM `events` WHERE event_date <= CURRENT_DATE()
  4.  


если есть идеи как сделать одним. буду признателен)
2. EuGen - 28 Января, 2012 - 20:09:52 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` WHERE `date_field`<NOW() ORDER BY `date_field` DESC LIMIT 1
  2. UNION ALL
  3. SELECT * FROM `table` WHERE `date_field`>NOW() ORDER BY `date_field` LIMIT 1
3. snikers987 - 28 Января, 2012 - 20:28:02 - перейти к сообщению
EuGen пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` WHERE `date_field`<NOW() ORDER BY `date_field` DESC LIMIT 1
  2. UNION ALL
  3. SELECT * FROM `table` WHERE `date_field`>NOW() ORDER BY `date_field` LIMIT 1


EuGen, Спасибо, хоть запрос и не корректный, но натолкнул на мысль.

 

Powered by ExBB FM 1.0 RC1