Heim >Datenbank >MySQL-Tutorial >Wie erhalte ich den n-thöchsten Wert in einer MySQL-Ergebnismenge? Lösungsfall mit MySQL LIMIT
Eines der schwierigsten Probleme in MySQL ist: Wie erhält man den n
thöchsten Wert in der Ergebnismenge, z. B. die Abfrage, welches das zweitteuerste (oder n
) teuerste Produkt ist, offensichtlich Sie? MAX kann nicht verwendet werden. Oder verwenden Sie eine Funktion wie MIN zum Abfragen und Abrufen. Wir können jedoch MySQL LIMIT
verwenden, um solche Probleme zu lösen.
Sortieren Sie zunächst die Ergebnismenge in absteigender Reihenfolge.
Der zweite Schritt ist , verwenden Sie die LIMIT
-Klausel, um das n
teuerste Produkt zu erhalten.
Die allgemeine Abfrage lautet wie folgt:
SELECT column1, column2,... FROM table ORDER BY column1 DESC LIMIT nth-1, count;
Schauen wir uns ein Beispiel an. Die Struktur der products
-Tabelle ist wie folgt:
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
Siehe unten Zeilendatensatz in der Produkttabelle:
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
Unsere Aufgabe ist es, das zweithöchste Produkt in der Ergebnismenge zu finden. Sie können die LIMIT
-Klausel verwenden, um die zweite Zeile auszuwählen, z. B. die folgende Abfrage (Hinweis: Der Offset beginnt bei 0
, daher müssen Sie den Beginn bei 1
angeben und dann eine Zeile mit Datensätzen verwenden):
SELECT productCode, productName, buyprice FROM products ORDER BY buyprice DESC LIMIT 1, 1;
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:
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
Ebenso werden die Produktinformationen mit dem dritt- und vierthöchsten Verkaufspreis abgerufen: LIMIT 2, 1
und LIMIT 3, 1
.
Verwandte Artikel:
So erhalten Sie den N-ten Datensatz in jeder MySQL-Gruppe
MSSQL implementiert MySQL-Limit-SQL-Anweisung
Ähnliche Videos:
Nutzung einschränken – Boolean Education Yan Shiba MySQL-Einführungsvideo-Tutorial
Das obige ist der detaillierte Inhalt vonWie erhalte ich den n-thöchsten Wert in einer MySQL-Ergebnismenge? Lösungsfall mit MySQL LIMIT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!