Выборка n подряд идущих записей.

Kivsiak

Новичок
Выборка n подряд идущих записей.

есть таблица, с двумя полями (для простоты задачи)
id int | value varchar

id автоинкрементный но не сплошной.

выборка сортируется по value и затем мне нужно получить запись с известным id и n следующих зписей.

Я сижу и думаю возможно ли это сделать исключительно на уровне MySQL (3 или 4 версии). И будет ли это оправдано, т.к. релизовать это с помощью PHP не сложно
 

Фанат

oncle terrible
Команда форума
непонятно, что тебе непонятно
where знаешь? order by знаешь? limit знаешь?
 

Kivsiak

Новичок
если бы это так просто было я бы тут не постился.
Наглядный пример
id value
1 a
2 d
3 f
4 b
7 e
надо отсортировать по value и вывести вернуть запись с id =4 и следующую после нее. т.е. запрос должен вернуть
4 b, 2 d
Первое что приходит на ума select * from table test where id=4 order by value limit 2
но с учетом того что id уникален то лимит тут глупо смотрится.
Задавать офсет для лимита то я тоже не могу ибо не знаю до сортировки какой по счету будет нужная мне запись
 

Kivsiak

Новичок
Поиск товара по названию или первой букве и вывод его и 2 ближайший. Ну надо это заказчику
Пока я просто загоняю в массив выборку с id Name по name отсортированную добываю id из массива и затем вторым запросом уж получаю характеристики нужных мне товаров целиком. Первоначальная выборка не превышает 1000 элементов (в худшем случае) поэтому такой подход меня не пугает.
Но решение подобной задачи чисто SQL методами для меня очень интересно. Кто знает может в следующий раз база для поиска будет 100к+ записей содержать.

-~{}~ 25.01.06 02:14:

Автор оригинала: neko
в каком смысле "лимит глупо смотрится"?
в том смысле что запись и так максимум одна вернется.
 

Фанат

oncle terrible
Команда форума
если лимит глупо смотрится - добавь к этому условию ещё одно
 

Kivsiak

Новичок
Автор оригинала: Фанат
если лимит глупо смотрится - добавь к этому условию ещё одно
например? не забывай что кроме id я ничего не знаю о том что лежит в таблице.
 

Фанат

oncle terrible
Команда форума
как это - не знаешь? ты же знаешь, какие тебе нужны записи
 

Kivsiak

Новичок
хм... мы точно одинково понимаем постановку задачи?
Однозначно по id я могу получить только одну запись какие будут соседними после сортировки я знать не могу. Равно как и не имею понятия как их получить, соседние.

-~{}~ 26.01.06 04:25:

Я тормоз. Только сейчас вспомнил что можно сравнивать строки Ж(
Код:
 select * from test where `value`>=(select `value` from test where id=1) order by `value` limit 3
Жаль что писать приходится под 3 версию и это не прокатит
 

Фанат

oncle terrible
Команда форума
прямо такие муки гамлетовские - лишний запрос сделать
 
Сверху