如何获得MySQL结果集中的第n个最高值?使用MySQL LIMIT的解决案例

MySQL中最棘手的问题之一是:如何获得结果集中的第n个最高值,例如查询第二(或第n)贵的产品是哪个,显然不能使用MAX或MIN这样的函数来查询获得。 但是,我们可以使用MySQL LIMIT来解决这样的问题。

首先,按照降序对结果集进行排序。

第二步,使用LIMIT子句获得第n贵的产品。

通用查询如下:

%ignore_pre_1%

 下面我们来看看一个例子,products表的结构如下所示 –

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, buypriceFROM productsORDER 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

 我们的任务找出结果集中价格第二高的产品。可以使用LIMIT子句来选择第二行,如以下查询(注意:偏移量从0开始,所以要指定从1开始,然后取一行记录):

SELECT productCode, productName, buyprice FROM  productsORDER BY buyprice DESCLIMIT 1, 1;

 执行上面查询语句,得到以下结果 –

凹凸工坊-AI手写模拟器 凹凸工坊-AI手写模拟器

AI手写模拟器,一键生成手写文稿

凹凸工坊-AI手写模拟器 500 查看详情 凹凸工坊-AI手写模拟器

mysql> SELECT productCode, productName, buyprice FROM  productsORDER BY buyprice DESCLIMIT 1, 1;+-------------+--------------------------------+----------+| productCode | productName                    | buyprice |+-------------+--------------------------------+----------+| S18_2238    | 1998 Chrysler Plymouth Prowler | 101.51   |+-------------+--------------------------------+----------+1 row in set

 类似的,获取售价第三高、第四高的产品信息为:LIMIT 2, 1LIMIT 3, 1

相关文章:

如何得到Mysql每个分组中的第N条记录

mssql 实现mysql limit sql语句

相关视频:

limit用法-布尔教育燕十八mysql入门视频教程

以上就是如何获得MySQL结果集中的第n个最高值?使用MySQL LIMIT的解决案例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/891746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
天眼查企业查询下载 天眼查App下载官方地址
上一篇 2025年11月28日 15:28:52
《流放之路2》新更新公布 多项调整预定下周末发布
下一篇 2025年11月28日 15:28:59

相关推荐

发表回复

登录后才能评论
关注微信