怎么獲得MySQL結(jié)果集中的第n個(gè)最高值?使用MySQL LIMIT的處理案例
發(fā)表時(shí)間:2023-07-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]MySQL中最棘手的問題之一是:如何獲得結(jié)果集中的第n個(gè)最高值,例如查詢第二(或第n)貴的產(chǎn)品是哪個(gè),顯然不能使用MAX或MIN這樣的函數(shù)來查詢獲得。 但是,我們可以使用MySQL LIMIT來解決...
MySQL中最棘手的問題之一是:如何獲得結(jié)果集中的第n
個(gè)最高值,例如查詢第二(或第n
)貴的產(chǎn)品是哪個(gè),顯然不能使用MAX或MIN這樣的函數(shù)來查詢獲得。 但是,我們可以使用MySQL LIMIT
來解決這樣的問題。通用查詢?nèi)缦拢?/p>
SELECT
column1, column2,...
FROM
table
ORDER BY column1 DESC
LIMIT nth-1, count;
下面我們來看看一個(gè)例子,products
表的結(jié)構(gòu)如下所示 -
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
查看以下產(chǎn)品表中的行記錄:
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
我們的任務(wù)找出結(jié)果集中價(jià)格第二高的產(chǎn)品。可以使用LIMIT
子句來選擇第二行,如以下查詢(注意:偏移量從0
開始,所以要指定從1
開始,然后取一行記錄):
SELECT productCode, productName, buyprice FROM products
ORDER BY buyprice DESC
LIMIT 1, 1;
執(zhí)行上面查詢語句,得到以下結(jié)果 -
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
類似的,獲取售價(jià)第三高、第四高的產(chǎn)品信息為:LIMIT 2, 1
和 LIMIT 3, 1
。
相關(guān)文章:
如何得到Mysql每個(gè)分組中的第N條記錄
mssql 實(shí)現(xiàn)mysql limit sql語句
相關(guān)視頻:
limit用法-布爾教育燕十八mysql入門視頻教程
以上就是如何獲得MySQL結(jié)果集中的第n個(gè)最高值?使用MySQL LIMIT的解決案例的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。