![]() |
MySQL, нахождение позиции в таблице
Есть таблица в бд
id | count Нужно найти позицию id в отсортированной по убыванию count таблице. Помогите сформировать запрос |
Если я тебя правильно понял: :)
select id from (твоя таблица) where count='коунт id которого ищеш' Или уточни что тебе нужно. |
Цитата:
а я понял так, вот запрос: это отсорировано по убыванию SELECT count(id) FROM `count` where id>=твой ид это отсорировано по возрастанию SELECT count(id) FROM `count` where id<=твой ид |
Код:
SELECT COUNT(`id`) FROM `tbl` WHERE `count` > (SELECT `count` FROM `tbl` WHERE `id` = '12321')Получишь количество элементов, count которых больше count искомого, т.е. по сути - номер в отсортированной таблице; индексация с 0. |
Цитата:
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 - нужный номер |
Цитата:
I1=1, I2=2....In=In-1+1 но если даже это выполняется, то взяв твой вариант, n- это и есть то число которое нужно найти, а у тебя n нужно вводить вручную (т.е. знать заранее) Я думаю предложенный Helius`ом и доработанный мной вариант как раз удовлетворяет условию этой "задачи" |
2Scipio возможно ошибся, я имел ввиду что именно id нужно вывести. но если нужна позиция, тогда в чем вопрос и причем здесь вообще count?) ну, а если по count надо искать, то уже написали)
>>Я думаю предложенный Helius`ом и доработанный мной вариант только там count вместо id в условии выборки:) |
Сотрировка
Код:
SELECT COUNT(`id`) FROM `tbl` WHERE `count` >=(SELECT `count` FROM `tbl` WHERE `id` =твой ид ) ORDER BY `count` DESC |
Цитата:
|
| Время: 02:43 |