2012-05-30 1 views
1

Я хотел бы знать, если есть способ, чтобы вернуть текущий индекс каждой строки в запросе MySQL, например:Возвращаемого значения индекса каждой строки в MySQL

SELECT current_index, name FROM table LIMIT 10,10 

Так что результирующие строки будут имеют

10, 'somename', 
11, 'somename', 
etc.... 

Это будет значение, основанное на начальном предельном значении.

ответ

4
SET @rn = 10; 

SELECT @rn := @rn + 1 AS current_index, 
     name 
FROM mytable 
LIMIT 10, 10 

Пожалуйста, обратите внимание, что LIMIT 10, 10 означает записей из 11 в 20.

Также обратите внимание, что LIMIT без стабильного ORDER BY не может сохраняться в запросе до запроса (и не сохраняется в некоторых двигателях).

+0

Просто идеальный ответ! –

+0

Является ли это значимым без 'ORDER BY'? – eggyal

+0

@eggyal: учитывая текущие детали реализации, да (это всегда будет просмотр индекса для кратчайшего индекса, содержащего «имя», или сканирование таблицы/'PRIMARY', если такой индекс не существует или будет больше, чем таблица). Но вы правы, на это нельзя положиться. – Quassnoi

Смежные вопросы