Короче скрипт новостей, при выборе 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 запись...
тоже разделение на страницы, только на каждой странице - 1 запись...
Спустя 5 часов, 47 минут, 29 секунд (26.02.2007 - 15:50) Leningrad00 написал(а):
сделай так
Предположим новости выходят по id
Select ....where id<'$num' order by id asc limit 1
Видишь..всего один запрос(не считая первого селекта)
Предположим новости выходят по 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?
2 Ghost
БД старая, поэтому union не подходит.
Кстати, на будующее, как лучше писать - несколько запросов подряд или объединять их в один с помощью union?
Спустя 7 часов, 46 минут, 51 секунда (27.02.2007 - 03:34) Ghost написал(а):
зависит от контекста задачи
_____________