Как выбрать определённое количество записей начиная с номера N

latex

Guest
Как выбрать определённое количество записей начиная с номера N

Вот допустим у меня есть таблица, с полем "id" (AUTO_INCREMENT) и полем "name". Значения поля "id" не совпадают с порядковым номером поля. Мне нужно выбрать все записи от 2 до N (по порядковым номерам). Можно ли написать такой запрос и если можно то как?
|id|name|
|1|vasya|
|4|petya|
..............
|n|masha|
................
 

Profic

just Profic (PHP5 BetaTeam)
LIMIT N-2 OFFSET 2
ну или для старых мусек
LIMIT 2,N-2

Это чтоли имелось ввиду?
 

latex

Guest
т.е. как я понимаю, ты хочешь сказать, что если я напишу
SELECT * FROM $table WHERE LIMIT 2, N-2
то выберу из базы данных все сообщения с порядковыми номерами с 2 по N?
 

Profic

just Profic (PHP5 BetaTeam)
Что ты понимаешь в этом запросе под порядковым номером? У записей в базе нет никакого порядка. Они лежат там в куче. Порядок есть в запросе с order by.
 

latex

Guest
Я имею ввиду тот порядок в котором они заносились.
В принципе ORDER BY `id` подходит. Но как выбрать определённое количество записей начиная с некоторого порядкового номера?
 

Profic

just Profic (PHP5 BetaTeam)
Именно так как у меня написано выше
(Если я правильно понял, то что у тебя "порядковый номер" - это номер записи при сортировке по id)
 

latex

Guest
Слушай, а я правильно запрос записываю, а то чёто у меня не работает :(?
SELECT * from $table WHERE LIMIT 2, 6 ORDER BY `id`
 

Profic

just Profic (PHP5 BetaTeam)
Вообще для такого есть документация (синтаксис написания запросов)
А в данном конкретном случае LIMIT идет всегда последним!
И "не работает" это не сообщение об ошибке.
 

latex

Guest
Всё, теперь работает! Огромное спасибо!
SELECT * ORDER BY `id` LIMIT n1, n2
(Выводит записи с поядковым номером от n1 до n2)
 

Фанат

oncle terrible
Команда форума
все-таки, для тебя будет гораздо лучше, если ты перестанешь употреблять термин "порядковый номер".
Во-первых, понимание этого факта моможет тебе избежать очень больших проблем в будущем, а во-вторых, элементарно облегчит понимание между тобой и форумом.
 

jer

...
latex

SELECT * ORDER BY `id` LIMIT n1, n2
(Выводит записи с поядковым номером от n1 до n2)
этот запрос не может работать.

а тем более выводить записи от n1 до n2

SELECT * FROM `table_name` ORDER BY `id` LIMIT n1, n2
будет выводить записи от n1 до n1+n2
 
Сверху