Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос на выборку записей
 
 автор: 1prom   (26.02.2014 в 19:08)   письмо автору
 
 

Здравствуйте.

В таблице есть поле (date).
Подкажите, пожалуйста, как выбрать одним запросом 2 записи раньше определенной даты и 3 позже определенной даты.

Спасибо заранее

  Ответить  
 
 автор: bab-nike   (18.04.2014 в 00:27)   письмо автору
 
   для: 1prom   (26.02.2014 в 19:08)
 

вопрос актуальный, сам хотел бы узнать, пример:
таблица
id | name | time_reg |
12 | aaaa | 13000|
15| bbbb | 13500 |
16| cccc | 13510|
20| dddd |13520 |
22 | eeee |13600 |
23 | dddd |13888 |

нужно вывести инфо так, что бы скажем id=16 был в середине,
я делал так, 2 запроса + манипуляции с массивами
select * from _table_ where time_reg < = '$time_reg'  limit 3

выод -> запись в массив
и
select * from _table_ where time_reg > '$time_reg'  limit 3

вывод -> запись во второй массив,
далее приклеивание массивов, разбор полетов в этом массиве ....
в итоге, так как есть еще и постраничная навигация, все становится намного сложнее, код реально НЕчитабельный.
Если есть у кого либо, какие то мысли, направление по решению вопроса, буду благодарен.
Заранее спасибо.

  Ответить  
 
 автор: KPETuH   (18.04.2014 в 00:59)   письмо автору
 
   для: 1prom   (26.02.2014 в 19:08)
 

Например так
(SELECT * FROM `table` WHERE `date`<'2011-11-30' ORDER BY `date` DESC LIMIT 2)
UNION
(SELECT * FROM `table` WHERE `date`>'2011-11-30' LIMIT 3)

  Ответить  
 
 автор: bab-nike   (20.04.2014 в 14:35)   письмо автору
 
   для: KPETuH   (18.04.2014 в 00:59)
 

Спасибо, получилась, правда с сортировкой запрос криво справлялся, пришлось ksort() использовать, но результат достигнут максимально рационально,
1) получить срез данных - выполнено, за счет UNION
2) постраничная навигация -выполнено, за счет удачного использования LIMIT n,m

  Ответить  
 
 автор: Valick   (20.04.2014 в 21:53)   письмо автору
 
   для: bab-nike   (20.04.2014 в 14:35)
 

>правда с сортировкой запрос криво справлялся, пришлось ksort() использовать
в этом нет вины запроса, это полностью вина программиста
учите SQL

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования