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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выбор: "требуемое" + "перед ним" + "после него"

Сообщения:  [1-2] 

 
 автор: cheops   (15.01.2012 в 14:01)   письмо автору
 
   для: Sfinks   (14.01.2012 в 18:40)
 

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

  Ответить  
 
 автор: Sfinks   (14.01.2012 в 18:40)   письмо автору
 
 

Имеется таблица каталогов (cats) и таблица галерей (gals).
В таблице gals поле id_cat определяет к какому каталогу относится галерея.
Требуется выбрать конкретную галерею, например id_gal=8 из каталога id_cat=1 и из того же каталога предыдущую и следующую за ней галерею.

Можно выбрать тремя запросами:
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`=8
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`>8 ORDER BY `id_gal` LIMIT 0,1
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`<8 ORDER BY `id_gal` DESC LIMIT 0,1

Можно двумя:
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`>=8 ORDER BY `id_gal` LIMIT 0,2
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`<8 ORDER BY `id_gal` DESC LIMIT 0,1

А одним можно?

  Ответить  

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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