|
|
|
| Подобная выборка производится например в рейтингах: переход по ссылке http://rating.ru/?id=165 инициирует вывод заданного количества ссылок начиная со ссылки с id 165. И вот не возьму в толк: можно это осуществить командами MySQL или нужно выбирать ВСЕ и сортировать функциями РНР? Подскажите пожалуйста, как это обычно делается? | |
|
|
|
|
|
|
|
для: amigo62
(01.08.2007 в 11:02)
| | Строки в таблицах лежат внавал.
Когда Вы говорите, что требуются строки, начиная с id 165, то подразумеваете определенный порядок этих строк. Какой? | |
|
|
|
|
|
|
|
для: Trianon
(01.08.2007 в 11:05)
| | в данном конкретном случае ORDER BY date DESC если Вы об этом | |
|
|
|
|
|
|
|
для: amigo62
(01.08.2007 в 12:22)
| | id и date взаимно монотонны?
Тогда достаточно написать
SELECT * FROM tbl
WHERE id >= 165
ORDER BY date DESC
| Если нет - тогда сложнее
SELECT * FROM tbl
WHERE date >= (SELECT date FROM tbl WHERE id=165)
ORDER BY date DESC
|
| |
|
|
|
|
|
|
|
для: Trianon
(01.08.2007 в 11:05)
| | Да, получается что значение UNIX Timestamp в столбце date возрастает одновременно с auto_increment'ацией id, значит, подойдет первый способ, я думаю... окончательно
<?php
$query="SELECT * FROM `table` WHERE `id`=<'$id' ORDER BY `date` DESC LIMIT ".$recsperpage;
?>
|
а вот второй пример пригодится для общего развития, не знал, что можно выполнить запрос в запросе=) большое человеческое спасибо=) | |
|
|
|
|
|
|
|
для: Trianon
(01.08.2007 в 11:05)
| | Да, получается что значение UNIX Timestamp в столбце date возрастает одновременно с auto_increment'ацией id, значит, подойдет первый способ, я думаю... окончательно
<?php
$query="SELECT * FROM `table` WHERE `id`=<'$id' ORDER BY `date` DESC LIMIT ".$recsperpage;
?>
|
а вот второй пример пригодится для общего развития, не знал, что можно выполнить запрос в запросе=) большое человеческое спасибо=) | |
|
|
|
|
|
|
|
для: amigo62
(01.08.2007 в 11:02)
| | Каков вопрос таков ответ
select t.rn
from (select row_number over (order by id) as rn from table) t
where t.rn >= 165;
|
Хотите верьте хотите нет, но этот запрос
Выводит строки заведомо упорядоченные по id начинаю со 165 позиции
P.S. Ну все пора на пенсию | |
|
|
|
|
|
|
|
для: oradev
(01.08.2007 в 13:09)
| | Хм... именно в MySQL? over не поддерживается MySQL и помоему вообще в стандарт SQL не входит... | |
|
|
|
|
|
|
|
для: cheops
(01.08.2007 в 13:48)
| | cheops, ну я в соответствии со своим ником так ответил, уж извиняйте! | |
|
|
|