Получить номер ряда из общей выборки mysql

271
15 августа 2017, 14:07

Есть общий запрос вида:

SELECT id FROM test BY time DESC

Выдаются результаты вида:

order - id  
  1   - 2 
  2   - 69
  3   - 111

Как максимально просто зная id понять, какой у него будет порядковый номер(order) в таком запросе?

P.S. если изложил неясно - напишите в комменты. Попробую еще раз

Answer 1

Номер записи в указанной вами выборке для ID=XX можно получить так:

select count(1)
  from test A,
       (select time, id from test where id=XX) B
 where A.time > B.time
    or (A.time=B.time and A.id<=B.id)

Наличие индекса по полю time очень приветствуется. Может потребоваться несколько усложнить условие для более оптимальному проходу по индексу. Но сделать это можно только по планам выполнения на реальной таблице с данными.

READ ALSO
Хранение не целых чисел mysql

Хранение не целых чисел mysql

В mysql записываются дробные числаОни должны хранится в базе до точностью на n ое количество после запятой

255
Выборка строк из базы, таким образом чтобы их сумма была не больше заданной

Выборка строк из базы, таким образом чтобы их сумма была не больше заданной

Есть таблица mysql В ней есть поле ценаСуществует ли способ выбрать только те ячейки сумма, которых не превышает заданное число и при этом находится...

215
BCryptPasswordEncoder IllegalStateException

BCryptPasswordEncoder IllegalStateException

Соответствии с этим гайдом сделал себе регистрацию на сайтеВсе прекрасно работало до вчерашнего вечера когда в какой то момент (вот это пропустил...

312
Почему Spring не создает бин HibernateTemplate?

Почему Spring не создает бин HibernateTemplate?

Есть прстое хранилище которое должно использовать HibernateTemplate для сохранения данных в таблицуНо Spring не создает его bean отказываясь автоматически...

254