Вопрос по селекту

Вопрос по селекту

Как в MySQL 4.0.2 одним запросом получить следующее:
Имеется таблица Человек (id int auto_increment, primary key, name varchar(255)).
Нужно выбрать 20 людей, отсортированных, скажем по имени, чтобы десятый в выборке человек имел id=6.
 

zerkms

TDD infected
Команда форума
ужас какой.... так или иначе:
[sql]
SET @a:=0;
SELECT *, @a:=@a+1, IF (@a=6, 6, `id`) AS `id` FROM `table`
[/sql]
 
Спасибо, честно говоря незнал, что в этой версии есть переменные. Попробую объяснить подробнее:
SELECT * FROM table ORDER BY id
вернет все записи таблицы table отсортированные по id. Мне нужно получить 10 записей до записи с id=6, запись с id=6, и 9 записей после.
Это легко решается в более поздних версиях MySQL средствами курсоров.
Возможно ли сделать такое средствами TSQL в указанной версии MySQL?
 

antson

Новичок
Партнер клуба
WHERE `id` < 6 LIMIT 10
по определению только 5 записей максимум.



в общем виде задача не имеет решение, так как нет гарантии что в базе будет 10 записей таких, чтобы по сортировке они были до нужной.

Аарам Авром какой нибудь попадется как человек с требуем id и что делать будем ?

Исходная задача какая ?
 
Сверху