Maison >base de données >tutoriel mysql >Comment obtenir la nième valeur la plus élevée dans un jeu de résultats MySQL ? Cas de solution utilisant MySQL LIMIT
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 setRegardez 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 setNotre 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 setDe 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
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!