Поиск по сайту:

Начал хоровод — танцуй его до конца (Болгарская пословица).

Как выбрать N-ую самую высокую запись в MySQL

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
29 января 2020
Как скопировать базу данных MySQL
Резюме : в этой статье вы узнаете, как выбрать n- ю самую высокую запись в таблице базы данных, используя различные приемы.

Легко выбрать самую высокую или самую низкую запись в таблице базы данных с помощью функции MAX или MIN. Тем не менее, немного сложно выбрать n- ую самую высокую запись. Например, получить второй самый дорогой продукт из таблицы продуктов.

Чтобы выбрать n- ую наивысшую запись, вам необходимо выполнить следующие шаги:

Сначала вы получаете n самых высоких записей и сортируете их в порядке возрастания.  N- я высокая запись является последней записью в наборе результатов.
Затем вы сортируете набор результатов в порядке убывания и получаете первый.

Ниже приведен запрос для получения n- ых самых высоких записей в порядке возрастания:

SELECT
*
FROM
my_table_name
ORDER BY my_column_name ASC
LIMIT N;

 

Запрос для получения n- й наивысшей записи выглядит следующим образом:

SELECT
*
FROM
(SELECT
*
FROM
my_table_name
ORDER BY my_column_name ASC
LIMIT N) AS tbl
ORDER BY my_column_name DESC
LIMIT 1;

 

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

SELECT
*
FROM
my_table_name
ORDER BY my_column_name DESC
LIMIT n - 1, 1;

 

Запрос возвращает первую строку после n-1 строк, поэтому вы получите n- ю самую высокую запись.

 

Пример, как получить n-ую самую высокую запись

Например, если вы хотите получить второй самый дорогой продукт (n = 2) в таблице my_products, вы используете следующий запрос:

SELECT
productCode, productName, buyPrice
FROM
my_products
ORDER BY buyPrice DESC
LIMIT 1 , 1;

 

 

Вот результат:

Как выбрать N-ую самую высокую запись в MySQL

 

Второй способ получить n-ую самую высокую запись – это использование подзапрос в MySQL:

SELECT *
FROM my_table_name ASa
WHERE n - 1 = (
SELECT COUNT(primary_key_column)
FROMmy_productsb
WHERE  b.my_column_name > a. my_column_name)

 

Используя первый метод, вы можете получить тот же результат, чтобы получить второй самый дорогой продукт, используйте следующий запрос:

SELECT
productCode, productName, buyPrice
FROM
my_products a
WHERE
1 = (SELECT
COUNT(productCode)
FROM
my_products b
WHERE
b.buyPrice > a.buyPrice);

 

В этой статье мы показали, как выбрать n- ую запись в таблице базы данных с помощью предложения LIMIT в MySQL.

Читать  Как включить общий журнал запросов MySQL на Linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close