求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
 


AI 智能化软件测试方法与实践
5月23-24日 上海+在线



人工智能.机器学习TensorFlow
5月22-23日 北京



图数据库与知识图谱
5月22-23日 北京
 
 

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个最高纪录
640 次浏览
4次  

在本教程中,您将学习如何使用各种技术选择数据库表中第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元





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



640 次浏览
4次
 捐助