求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 

mysql教程
MySQL快速学习入门
MySQL是什么
MySQL安装
MySQL示例数据库
MySQL导入示例数据库
MySQL基础教程
MySQL查询数据
MySQL WHERE语句
MySQL插入数据
MySQL更新表数据
MySQL删除表数据
MySQL创建与删除数据库
MySQL创建表
MySQL修改表结构
MySQL重命名表
MySQL数据类型
高级部分
MySQL技巧
MySQL存储过程
MySQL视图
MySQL触发器
MySQL管理
MySQL全文搜索
MySQL函数
应用程序连接
MySQL+Node.js连接和操作
Python+MySQL连接和操作
 
 

MySQL选择第n个最高纪录
602 次浏览
1次  

在本教程中,您将学习如何使用各种技术选择数据库表中第n个最高记录。

使用MAX或MIN函数可以轻松选择数据库表中最高或最低的记录。但是,选择第n个最高纪录有点棘手。 例如,从products表中获得第二高价格的产品。

要选择第n个最高记录,需要执行以下步骤:

首先,得到n个最高记录,并按升序排列。第n个最高记录是结果集中的最后一个记录。

然后,按顺序对结果集进行排序,并获得第一个结果集。

以下是以升序获得第n个最高记录的查询:

SELECT
*
FROM
table_name
ORDER BY column_name ASC
LIMIT N;

获得第n个最高记录的查询如下:

SELECT
*
FROM
(SELECT
*
FROM
table_name
ORDER BY column_name ASC
LIMIT N) AS tbl
ORDER BY column_name DESC
LIMIT 1;

幸运的是,MySQL为我们提供了限制返回结果集中的行数的LIMIT子句。可以重写上述查询如下:

SELECT
*
FROM
table_name
ORDER BY column_name DESC
LIMIT n - 1, 1;

查询返回n-1行之后的第一行,以便获得第n个最高记录。

获得第n个最高纪录的例子

第一种方法

例如,如果要在products表中获得第二个最昂贵的产品(n = 2),则使用以下查询:

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

第二种方法

获得第n个最高记录的第二种技术是使用MySQL子查询:

SELECT *
FROM table_name AS a
WHERE n - 1 = (
SELECT COUNT(primary_key_column)
FROM products b
WHERE b.column_name > a. column_name)

可以使用第一种技术获得相同的结果,以获得第二高价产品作为以下查询:

SELECT
productCode, productName, buyPrice
FROM
products a
WHERE
1 = (SELECT
COUNT(productCode)
FROM
products b
WHERE
b.buyPrice > a.buyPrice);

执行上面查询语句,结果如下:

+-------------+--------------------------------+----------+
| productCode | productName | buyPrice |
+-------------+--------------------------------+----------+
| S18_2238 | 1998 Chrysler Plymouth Prowler | 101.51 |
+-------------+--------------------------------+----------+
1 row in set

在本教程中,我们向您展示了如何使用MySQL中的LIMIT子句在数据库表中选择第n条记录。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



602 次浏览
1次
 捐助