MySQL基础学习_第035章节_LIMIT的用法

LIMIT的用法

当查询语句时,经常要返回前几条或者中间某几行数据,这时我们就需要用到LIMIT

注意:

(1)LIMIT是MySQL特有的,其它数据库中没有,在Oracle中有相同的机制,叫ROWNUM;

(2)LIMIT的作用是取结果集中的部分数据。

 

1. LIMIT的语法机制

语法机制:

LIMIT StartIndex,Length

其中:StartIndex表示起始位置,Length表示取几个

举例说明:有一张salary薪资表,表的设计详见第024章节:https://blog.youkuaiyun.com/weixin_43184774/article/details/115487875

salary薪资表如下:

例1:在如上的salary(薪资表)中查出工资前5名的员工

方式一:

SELECT
    name,sal
FROM
    salary
ORDER BY
    sal DESC
LIMIT 
    0,5;

方式二:起始位置的0可以不用写

SELECT
    name,sal
FROM
    salary
ORDER BY
    sal DESC
LIMIT
    5;

例2:在如上的salary(薪资表)中查出工资排名第三到第六名的员工

SELECT
    name,sal
FROM
    salary
ORDER BY
    sal DESC
LIMIT
    2,4;

 

2. LIMIT在SQL语句中的执行顺序

           

 

3. 通用的标准分页LIMIT

例:每页显示3条记录

        第1页:limit 0,3

        第2页:limit 3,3

        第3页:limit 6,3

        第4页:limit 9,3

        第5页:limit 12,3

        每页显示pageSize条记录

        第pageNo页的limit写法:(pageNo - 1) * pageSize, pageSize

        其中:

                 pageNo表示显示第几页

                 pageSize表示每页显示的记录

 

### 使用 `LIMIT` 子句进行分页和限制查询结果数量 #### 基本语法 在 MySQL 中,`LIMIT` 子句用于限制查询返回的结果集大小。其基本语法如下: ```sql SELECT column_name(s) FROM table_name LIMIT count; ``` 此命令会从指定表中选取前几行数据[^2]。 对于更复杂的场景,比如跳过一定数量的记录再获取特定数目记录,则可采用双参数形式: ```sql SELECT column_name(s) FROM table_name LIMIT offset, count; ``` 这里 `offset` 表示要跳过的初始行数(注意是从0开始计数),而 `count` 则是要取回的最大行数[^3]。 #### 实际应用案例 为了更好地理解这些概念的应用方式,下面给出几个具体例子说明如何利用 `LIMIT` 来完成不同类型的查询需求。 ##### 案例一:简单限制查询结果量 如果只需要查看某张表最前面若干条的数据项,可以直接使用单参版 `LIMIT`: ```sql USE myemployees; # 获取 employees 表里最早加入公司的五个雇员的信息 SELECT * FROM employees ORDER BY hire_date ASC LIMIT 5; ``` 这段 SQL 将按入职日期升序排列并取出最早的五位员工资料[^4]。 ##### 案例二:带偏移量的多条记录提取 当希望读取位于中间位置的一批连续记录时,应该指明起始点以及目标长度: ```sql USE myemployees; # 显示第十一至二十五个员工的相关详情 SELECT * FROM employees LIMIT 10, 15; ``` 上述指令先忽略掉前十个人之后才继续往后抓取十五笔资料。 ##### 案例三:结合条件筛选与排序操作 有时还需要配合其他逻辑表达式共同作用于最终输出的内容上: ```sql USE myemployees; # 找出所有获得佣金比例设定且薪资水平最高的十名成员名单 SELECT * FROM employees WHERE commission_pct IS NOT NULL ORDER BY salary DESC LIMIT 10; ``` 此处不仅限定了人数上限还加入了过滤器确保只考虑那些存在绩效奖励机制的对象,并依据报酬高低做降序处理后再截断成十个名额。 #### 分页查询技巧 针对大数据集合而言,通常不会一次性加载全部项目而是通过页面分割的形式逐步呈现给前端使用者看。此时便需要用到基于当前页码计算得出相应范围内的元素作为展示对象的方法论了。一般做法是在构建请求语句的时候动态调整两个变量值即 `(page-1)*size` 和 `size` ,其中前者代表本次访问应越过多少个实例后者则是每屏容纳单元总数目。 例如,在一个商品列表网页设计里面假设一页最多能放下二十件货品那么第二轮次浏览就应当执行这样的检索动作: ```sql SELECT product_id, name, price FROM products ORDER BY popularity_score DESC LIMIT 20 OFFSET 20; -- 这里的OFFSET等于(page-1)*size=1*20=20 ``` 这将使得应用程序能够高效地管理大量信息而不至于造成性能瓶颈或用户体验不佳等问题发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海黎明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值