[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: <prev ... next>
kart
Ребят, помогите, пожалуйста, возникла проблема при выборке из БД.

Короче скрипт новостей, при выборе n-ой записи нужно сгенерировать 2 ссылки на предыдущую и следущую новость. Додумался до такого (id предыдущей записи):

SELECT MAX(id) FROM content GROUP BY id HAVING MAX(id) < $num

где $num - id текущей новости. Запрос работает, но беда в том, что возвращается не один айдишник, как хотелось бы, а ВСЕ меньшие $num.
Вопрос 1: как извлечь одно единственное подходящее значение?
Вопрос 2: на вывод новости и двух этих ссылок требуется 3 запроса... реально ли отделаться одним?





Спустя 7 часов, 31 минута, 54 секунды (26.02.2007 - 10:03) md5 написал(а):
а почему лимитом не сделать?
тоже разделение на страницы, только на каждой странице - 1 запись...

Спустя 5 часов, 47 минут, 29 секунд (26.02.2007 - 15:50) Leningrad00 написал(а):
сделай так
Предположим новости выходят по id
Select ....where id<'$num' order by id asc limit 1
Видишь..всего один запрос(не считая первого селекта)

Спустя 36 минут, 39 секунд (26.02.2007 - 16:27) Ghost написал(а):
в один запрос можно через union
или, если ид идут подряд, без пропусков (сильное ограничение, предполагающее в основном что данные из таблицы удаляться не будут) - то и без оного

Спустя 3 часа, 20 минут, 46 секунд (26.02.2007 - 19:48) kart написал(а):
Ага, спасибо большое, вроде понял :)

2 Ghost
БД старая, поэтому union не подходит.
Кстати, на будующее, как лучше писать - несколько запросов подряд или объединять их в один с помощью union?

Спустя 7 часов, 46 минут, 51 секунда (27.02.2007 - 03:34) Ghost написал(а):
зависит от контекста задачи


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.