#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 не упомянул порядок. Это правильный момент, поэтому я отредактирую свой ответ.