旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

怎样取得MySQL效果集合的第n个最高值?运用MySQL LIMIT的处理案例【MySQL教程】,MySQL,LIMIT

作者:搜教程发布时间:2019-11-27分类:MySQL教程浏览:30评论:0


导读:MySQL中最辣手的题目之一是:怎样取得效果集合的第n个最高值,比方查询第二(或第n)贵的产物是哪一个,明显不能运用MAX或MIN如许的函数来查询取得。然则,我们能够运用MySQ...
MySQL中最辣手的题目之一是:怎样取得效果集合的第n个最高值,比方查询第二(或第n)贵的产物是哪一个,明显不能运用MAX或MIN如许的函数来查询取得。 然则,我们能够运用MySQL LIMIT来处理如许的题目。

  • 起首,根据降序对效果集举行排序。

  • 第二步,运用LIMIT子句取得第n贵的产物。

通用查询以下:

SELECT 
    column1, column2,...
FROM
    table
ORDER BY column1 DESC
LIMIT nth-1, count;

下面我们来看看一个例子,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, 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

我们的使命找出效果集合价钱第二高的产物。能够运用LIMIT子句来挑选第二行,如以下查询(注重:偏移量从0最先,所以要指定从1最先,然后取一行纪录):

SELECT productCode, productName, buyprice FROM  products
ORDER BY buyprice DESC
LIMIT 1, 1;

实行上面查询语句,获得以下效果 -

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

相似的,猎取售价第三高、第四高的产物信息为:LIMIT 2, 1LIMIT 3, 1

相干文章:

怎样获得Mysql每一个分组中的第N条纪录

mssql 完成mysql limit sql语句

相干视频:

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

以上就是怎样取得MySQL效果集合的第n个最高值?运用MySQL LIMIT的处理案例的细致内容,更多请关注ki4网别的相干文章!

标签:MySQLLIMIT


欢迎 发表评论: