MYSQL - найти запись в зависимости от номера строки

Можно ли получить запись в таблице в зависимости от номера строки?

Например, у меня есть таблица с 40 записями, и мне нужно получить 27-ю запись. Мне нужен запрос типа SELECT * FROM my_table WHERE **ROWNUM** = 27.


person Daniel Bednář    schedule 21.05.2018    source источник
comment
Вы можете, но не с ROWNUM, специфичным Oracle.   -  person Yogesh Sharma    schedule 21.05.2018


Ответы (2)


Если я вас правильно понял, вы ищете что-то подобное?

SELECT *
    FROM some_table t
    where @row = 26;
person Community    schedule 21.05.2018
comment
Ага, мне нужно что-то вроде этого. - person Daniel Bednář; 22.05.2018

Вы ищете offset:

select t.*
from my_table t
order by ???  -- you need to specify a column or expression here
limit 1 offset 26;

Две заметки. 27-й строки таблицы не существует. Таблицы SQL представляют собой неупорядоченные наборы. Порядок существует только в том случае, если в столбце указан порядок. Это цель order by. Часто это может быть первичный ключ таблицы.

Во-вторых, смещение (в отличие от большинства вещей в SQL) отсчитывается от нуля. Таким образом, смещение «1» означает «пропустить одну запись» или «начать со второй». Отсюда смещение «26».

person Gordon Linoff    schedule 21.05.2018