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
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
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;
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
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!