Maison  >  Article  >  base de données  >  Comment obtenir la nième valeur la plus élevée dans un jeu de résultats MySQL ? Cas de solution utilisant MySQL LIMIT

Comment obtenir la nième valeur la plus élevée dans un jeu de résultats MySQL ? Cas de solution utilisant MySQL LIMIT

php是最好的语言
php是最好的语言original
2018-08-03 15:04:081269parcourir

L'un des problèmes les plus difficiles dans MySQL est : comment obtenir la nème valeur la plus élevée dans l'ensemble de résultats, comme par exemple demander quel est le deuxième (ou n) produit le plus cher, évidemment vous Je ne peux pas utiliser MAX Ou utiliser une fonction comme MIN pour interroger et obtenir. Cependant, nous pouvons utiliser MySQL LIMIT pour résoudre de tels problèmes.

  • Tout d'abord , triez le résultat défini par ordre décroissant.

  • La deuxième étape est , utilisez la clause LIMIT pour obtenir le nème produit le plus cher.

La requête générale est la suivante :

SELECT 
    column1, column2,...
FROM
    table
ORDER BY column1 DESC
LIMIT nth-1, count;

Jetons un coup d'œil à un exemple La structure de la table products est la suivante -

mysql> desc products;
+--------------------+---------------+------+-----+---------+-------+
| Field              | Type          | Null | Key | Default | Extra |
+--------------------+---------------+------+-----+---------+-------+
| productCode        | varchar(15)   | NO   | PRI | NULL    |       |
| productName        | varchar(70)   | NO   |     | NULL    |       |
| productLine        | varchar(50)   | NO   | MUL | NULL    |       |
| productScale       | varchar(10)   | NO   |     | NULL    |       |
| productVendor      | varchar(50)   | NO   |     | NULL    |       |
| productDescription | text          | NO   |     | NULL    |       |
| quantityInStock    | smallint(6)   | NO   |     | NULL    |       |
| buyPrice           | decimal(10,2) | NO   |     | NULL    |       |
| MSRP               | decimal(10,2) | NO   |     | NULL    |       |
+--------------------+---------------+------+-----+---------+-------+
9 rows in set
Regardez les lignes du tableau de produits suivant :

mysql> SELECT productCode, productName, buyprice
FROM products
ORDER BY
 buyprice DESC;
+-------------+--------------------------------------+----------+
| productCode | productName                          | buyprice |
+-------------+--------------------------------------+----------+
| S10_4962    | 1962 LanciaA Delta 16V               | 103.42   |
| S18_2238    | 1998 Chrysler Plymouth Prowler       | 101.51   |
| S10_1949    | 1952 Alpine Renault 1300             | 98.58    |
| S24_3856    | 1956 Porsche 356A Coupe              | 98.3     |
| S12_1108    | 2001 Ferrari Enzo                    | 95.59    |
| S12_1099    | 1968 Ford Mustang                    | 95.34    |
... ....
+-------------+--------------------------------------+----------+
110 rows in set
Notre tâche est de trouver le deuxième produit le plus cher dans l'ensemble de résultats. Vous pouvez utiliser la clause

pour sélectionner la deuxième ligne, comme la requête suivante (remarque : le décalage commence à partir de LIMIT, vous devez donc spécifier à partir de 0, puis prendre une ligne d'enregistrements) : 1

SELECT productCode, productName, buyprice FROM  products
ORDER BY buyprice DESC
LIMIT 1, 1;
Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants -

mysql> SELECT productCode, productName, buyprice FROM  products
ORDER BY buyprice DESC
LIMIT 1, 1;
+-------------+--------------------------------+----------+
| productCode | productName                    | buyprice |
+-------------+--------------------------------+----------+
| S18_2238    | 1998 Chrysler Plymouth Prowler | 101.51   |
+-------------+--------------------------------+----------+
1 row in set
De même, obtenez les informations sur les produits des troisième et quatrième prix de vente les plus élevés :

et LIMIT 2, 1. LIMIT 3, 1

Articles connexes :

Comment obtenir le Nième enregistrement dans chaque groupe Mysql

mssql implémente l'instruction SQL limit mysql

Vidéos associées :

limiter l'utilisation - Boolean Education Yan Shiba mysql tutoriel vidéo d'introduction

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn