返回顶部
首页 > 资讯 > 数据库 >mysql如何限制查询个数
  • 308
分享到

mysql如何限制查询个数

2024-04-02 19:04:59 308人浏览 薄情痞子
摘要

这篇文章主要介绍了Mysql如何限制查询个数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在mysql中,可以

这篇文章主要介绍了Mysql如何限制查询个数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

mysql中,可以利用“LIMIT”子句来限制查询个数,该子句可以限制SELECT查询结果返回的条数,语法“SELECT column1,column2,... FROM table LIMIT offset , count;”。

教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用 LIMIT 子句来限制查询结果返回的条数。

LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。

1. MySQL LIMIT子句简介

SELECT语句中使用LIMIT子句来约束结果集中的行数。LIMIT子句接受一个或两个参数。两个参数的值必须为零或正整数。

下面说明了两个参数的LIMIT子句语法:

SELECT 
    column1,column2,...
FROM
    table
LIMIT offset , count;

我们来查看LIMIT子句参数:

  • offset参数指定要返回的第一行的偏移量。第一行的偏移量为0,而不是1

  • count指定要返回的最大行数。

mysql如何限制查询个数

当您使用带有一个参数的LIMIT子句时,此参数将用于确定从结果集的开头返回的最大行数。

SELECT 
    column1,column2,...
FROM
    table
LIMIT count;

上面的查询等同于下面接受两个参数的LIMIT子句的查询:

SELECT 
    column1,column2,...
FROM
    table
LIMIT 0 , count;

2. 使用MySQL LIMIT获取前N行

可以使用LIMIT子句来选择表中的前N行记录,如下所示:

SELECT 
    column1,column2,...
FROM
    table
LIMIT N;

例如,要查询employees表中前5个客户,请使用以下查询:

SELECT customernumber, customername, creditlimit FROM customers LIMIT 5;

或者 -

SELECT customernumber, customername, creditlimit FROM customers LIMIT 0,5;

执行上面语句,得到以下结果 -

mysql> SELECT customernumber, customername, creditlimit FROM customers LIMIT 5;
+----------------+----------------------------+-------------+
| customernumber | customername               | creditlimit |
+----------------+----------------------------+-------------+
|            103 | Atelier graphique          | 21000       |
|            112 | Signal Gift Stores         | 71800       |
|            114 | Australian Collectors, Co. | 117300      |
|            119 | La Rochelle Gifts          | 118200      |
|            121 | Baane Mini Imports         | 81700       |
+----------------+----------------------------+-------------+
5 rows in set

3. 使用MySQL LIMIT获得最高和最低的值

LIMIT子句经常与ORDER BY子句一起使用。首先,使用ORDER BY子句根据特定条件对结果集进行排序,然后使用LIMIT子句来查找最小或最大值。

注意:ORDER BY子句按指定字段排序的使用。

请参见示例数据库(yiibaidb)中的以下customers表,其表结构如下所示 -

mysql> desc customers;
+------------------------+---------------+------+-----+---------+-------+
| Field                  | Type          | Null | Key | Default | Extra |
+------------------------+---------------+------+-----+---------+-------+
| customerNumber         | int(11)       | NO   | PRI | NULL    |       |
| customerName           | varchar(50)   | NO   |     | NULL    |       |
| contactLastName        | varchar(50)   | NO   |     | NULL    |       |
| contactFirstName       | varchar(50)   | NO   |     | NULL    |       |
| phone                  | varchar(50)   | NO   |     | NULL    |       |
| addressLine1           | varchar(50)   | NO   |     | NULL    |       |
| addressLine2           | varchar(50)   | YES  |     | NULL    |       |
| city                   | varchar(50)   | NO   |     | NULL    |       |
| state                  | varchar(50)   | YES  |     | NULL    |       |
| postalCode             | varchar(15)   | YES  |     | NULL    |       |
| country                | varchar(50)   | NO   |     | NULL    |       |
| salesRepEmployeeNumber | int(11)       | YES  | MUL | NULL    |       |
| creditLimit            | decimal(10,2) | YES  |     | NULL    |       |
+------------------------+---------------+------+-----+---------+-------+
13 rows in set

例如,要查询信用额度最高的前五名客户,请使用以下查询:

SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY creditlimit DESC
LIMIT 5;

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

mysql> SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY creditlimit DESC
LIMIT 5;
+----------------+------------------------------+-------------+
| customernumber | customername                 | creditlimit |
+----------------+------------------------------+-------------+
|            141 | Euro+ Shopping Channel       | 227600      |
|            124 | Mini Gifts Distributors Ltd. | 210500      |
|            298 | Vida Sport, Ltd              | 141300      |
|            151 | Muscle Machine Inc           | 138500      |
|            187 | AV Stores, Co.               | 136800      |
+----------------+------------------------------+-------------+
5 rows in set

以下查询将返回信用限额最低的五位客户:

SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY
 creditlimit ASC
LIMIT 5;

4. 使用MySQL LIMIT获得第n个最高值

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

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

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

通用查询如下:

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

下面我们来看看一个例子,将使用示例数据库(yiibaidb)中的产品(products)表来进行演示。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如何限制查询个数”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql如何限制查询个数

本文链接: https://lsjlt.com/news/70434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql如何限制查询个数
    这篇文章主要介绍了mysql如何限制查询个数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在mysql中,可以...
    99+
    2024-04-02
  • mysql如何限制查询数量
    本篇内容主要讲解“mysql如何限制查询数量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql如何限制查询数量”吧! mysq...
    99+
    2024-04-02
  • php mysql如何查询个数
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php mysql如何查询结果集个数 ?在mysql数据库,创建一张user表,表内插入三条数据,用于测试。创建一个test.php文件,在文件内,使用header(...
    99+
    2024-04-02
  • SQL如何限制查询结果
    小编给大家分享一下SQL如何限制查询结果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL查询结果只显示指定的行项目。举例:只...
    99+
    2024-04-02
  • mysql如何查询表的个数
    这篇“mysql如何查询表的个数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql如...
    99+
    2024-04-02
  • MySQL限制查询和数据排序介绍
    目录一、限制查询1.指定从第几行起,返回多少行2.取最大值3.取最小值4.分页二、数据排序1.年龄大于10的根据id进行降序排序2.年龄大于10的按照id进行升序排序一、限制查询 我...
    99+
    2024-04-02
  • 在SQLite中如何限制查询结果的数量
    在SQLite中,可以使用LIMIT关键字来限制查询结果的数量。可以将LIMIT关键字放在查询语句的末尾,后面跟上要返回的行数。例如...
    99+
    2024-04-09
    SQLite
  • mysql如何查询两个表
    这篇文章主要介绍“mysql如何查询两个表”,在日常操作中,相信很多人在mysql如何查询两个表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何查询两个表”的疑惑...
    99+
    2024-04-02
  • mysql限制sql查询时间的方法
    这篇文章主要介绍了mysql限制sql查询时间的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql限制sql查询时间的方法:1、查询今...
    99+
    2024-04-02
  • mysql如何查询多个字段
    这篇文章主要讲解了“mysql如何查询多个字段”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql如何查询多个字段”吧! 在...
    99+
    2024-04-02
  • mysql多个条件如何查询
    这篇文章主要讲解了“mysql多个条件如何查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql多个条件如何查询”吧! 方...
    99+
    2024-04-02
  • MySQL数据库中如何查询缓冲机制
    MySQL数据库中如何查询缓冲机制,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  MySQL数据库怎么查询缓冲机制  通过调节以下几个参数可...
    99+
    2024-04-02
  • mysql如何查询一个表的列名数据
    在MySQL中,您可以通过几种方式来查询一个表的列名数据。以下是一些常用的方法: 1、使用DESCRIBE语句 最直接的方式是使用D...
    99+
    2024-05-21
    mysql
  • oracle视图怎么限制查询条数
    在Oracle中,可以通过使用ROWNUM或者FETCH FIRST语句来限制查询结果的条数。1. 使用ROWNUM:```sqlS...
    99+
    2023-08-15
    oracle
  • mysql如何查询数据数量
    要查询数据表中的数据数量,可以使用以下SQL查询语句: SELECT COUNT(*) FROM table_name; ...
    99+
    2024-04-12
    mysql
  • mysql数据表如何查询
    查询 mysql 数据表可以通过使用 select 语句来检索表中的数据。步骤如下:1. 建立连接;2. 编写 select 语句;3. 执行语句;4. 获取结果;5. 关闭连...
    99+
    2024-06-14
    mysql
  • php mysql怎么查询个数
    这篇文章主要介绍“php mysql怎么查询个数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php mysql怎么查询个数”文章能帮助大家解决问题。php mysql查询个数的方法:1、在mysq...
    99+
    2023-07-04
  • thinkphp如何查询多个数据
    这篇文章主要介绍“thinkphp如何查询多个数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp如何查询多个数据”文章能帮助大家解决问题。thinkphp查询多个数据的方法:1、使用...
    99+
    2023-07-04
  • 如何在python3中使用sqlite3限制条件查询
    如何在python3中使用sqlite3限制条件查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。import json import sql...
    99+
    2023-06-14
  • mysql如何查询一个表中的所有数据
    要查询一个表中的所有数据,可以使用以下SQL语句: SELECT * FROM table_name; 其中,table_...
    99+
    2024-04-20
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作