Страница 1 из 1

Mysql и номер по порядку

Добавлено: 01 июл 2005, 16:52
UUU
есть запрос:

select
otd,count(id) as cnt
from table1
group by otd
order by cnt desc

Надо узнать, на каком месте находится, например otd='123'

Добавлено: 06 сен 2005, 12:58
UUU
неужели задача не решаема простым способом?

Добавлено: 06 сен 2005, 16:01
AiK
Простым - точно нерешаема.
Вообще задача скажем так не совсем SQL-ная.
Я бы делал выборку во временную таблицу с автоинкрементным полем.

Добавлено: 07 сен 2005, 08:07
UUU
Как вариант, но, например, если записей далеко за десятки тысяч. Плодить временные таблицы :-( Можно, имхо, вложенными селектами, но 3 версия мускуля их не держит...

Добавлено: 07 сен 2005, 13:52
AiK
Ну, курсор в общем случае ещё тяжелее, да и нету их опять же минимум в ранних версиях mySQL.
А вообще задача вот почему не SQL-ная. Чтобы отобразить резалтсет ты всё-равно его в клиентском приложении выфетчить должен. Соответственно, счётчик на клиенте реализуется проще всего. Кроме того, на сколько я помню, mySQL имеет встроенное средство, выдающее порядковый номер строки резалтсета, причём с возможностью выборки по этому порядковому номеру.

Добавлено: 07 сен 2005, 14:02
UUU
Да, так и придется
set @a=0;
create table select @a=@a+1...
select
drop...

Сделал бы временную таблу, но почему-то не могу из перла (use MySQL) сделать множественный запрос :-)