Есть таблица в бд id | count Нужно найти позицию id в отсортированной по убыванию count таблице. Помогите сформировать запрос
Если я тебя правильно понял: select id from (твоя таблица) where count='коунт id которого ищеш' Или уточни что тебе нужно.
нет скорее ты неправельно понял... а я понял так, вот запрос: это отсорировано по убыванию SELECT count(id) FROM `count` where id>=твой ид это отсорировано по возрастанию SELECT count(id) FROM `count` where id<=твой ид
Code: SELECT COUNT(`id`) FROM `tbl` WHERE `count` > (SELECT `count` FROM `tbl` WHERE `id` = '12321') 12321 - искомый id Получишь количество элементов, count которых больше count искомого, т.е. по сути - номер в отсортированной таблице; индексация с 0.
да, я сначала не посмотрел, что он дал "структуру" таблицы, просто он еще написал непонятно, вот я и тупанул в конечном итоге я думаю правильным будет вариант Helios`a правдо надо немного подправить его: SELECT COUNT(`id`) FROM `tbl` WHERE `count` >=(SELECT `count` FROM `tbl` WHERE `id` =твой ид ) order by count desc
>>Нужно найти позицию id в отсортированной по убыванию count таблице. Помогите сформировать запрос наверноеб имелось ввиду: >>select id from table order by count desc limit n,1 где, n - нужный номер
В твоем случае на выходе будет id, а не позиция id, т.к. значения id могут идти не попорядку, т.е. не I1=1, I2=2....In=In-1+1 но если даже это выполняется, то взяв твой вариант, n- это и есть то число которое нужно найти, а у тебя n нужно вводить вручную (т.е. знать заранее) Я думаю предложенный Helius`ом и доработанный мной вариант как раз удовлетворяет условию этой "задачи"
2Scipio возможно ошибся, я имел ввиду что именно id нужно вывести. но если нужна позиция, тогда в чем вопрос и причем здесь вообще count?) ну, а если по count надо искать, то уже написали) >>Я думаю предложенный Helius`ом и доработанный мной вариант только там count вместо id в условии выборки
Сотрировка Code: SELECT COUNT(`id`) FROM `tbl` WHERE `count` >=(SELECT `count` FROM `tbl` WHERE `id` =твой ид ) [B]ORDER BY `count` DESC[/B] там нафик не нужна, т.к. результатом запроса будет не значение какого-то поля, а результат работы встроенной функции COUNT(), которой глубоко безразлично то, в каком порядке идут данные, которые она считает. Только лишняя трата времени, а если записей много - ...