Что такое запрос mysql для извлечения 99-й записи в таблице?

#mysql

#mysql

Вопрос:

Предположим, у нас есть имя таблицы с именем «Person», имеющее имя некоторого столбца, например "Firstname","LastName","OrderId" .

В таблице 100 строк в БД, я хочу извлечь 99-ю строку из таблицы Person.

Пожалуйста, предоставьте запрос mysql.

Заранее спасибо,

Динеш Кумар Манохаран

Комментарии:

1. 99-я строка, если отсортировать таблицу в каком порядке ?

Ответ №1:

Попробуйте это —

 select * from Person limit 98,1
  

Если вы хотите заказать по,

 select * from Person order by columnName limit 98,1
  

Комментарии:

1. Строки индексируются нулем, поэтому для таргетинга на 99-ю строку используйте 98, а не 99.

2. @Grim — Когда я опубликовал свой ответ, я тоже увидел ваш ответ и почти полностью вашу правку. Вот тогда я понял, что мой ответ был неправильным. Но прежде чем я смог отредактировать, @Rob уже указал на это в комментарии.. Уверен, у SO есть несколько очень быстрых пользователей 😉 и я тоже рад принять любую помощь 🙂

Ответ №2:

Предполагая, что вы хотите упорядочить их по OrderID:

 SELECT * FROM Person ORDER BY OrderId LIMIT 1 OFFSET 98
  

Комментарии:

1. ОГРАНИЧЕНИЕ с 2 аргументами функционально идентично определению ПРЕДЕЛА и смещения явно

Ответ №3:

 SELECT * FROM Person LIMIT 98, 1
  

Первая строка равна 0.

Обязательно упорядочите ее по чему-нибудь.

Комментарии:

1. Я просто поражен тем, как «правильный» ответ на нечетко определенный вопрос получает 2 голоса и одобрение со стороны OP.

2. Насколько я знаю, нет гарантии, что SELECT * FROM aTable строки всегда будут возвращаться в том же порядке. Обычно он возвращает строки в том порядке, в котором они были вставлены в базу данных. Но вы уверены, что это всегда верно для всех версий MySQL, всех движков, всех типов используемых индексов (кластеризованных или нет), независимо от того, разделена таблица или нет и т.д.?

3. Я согласен, но OP не упомянул порядок. Это правильный момент, поэтому я отредактирую свой ответ.