mysql limit两个参数_产品操作MySQL第6篇 – 数据过滤-LIMIT子句

0c7be6cd9245cf3430f7487d3309c1fc.png

MYSQL

本资料为产品岗位作为日常工作参考,语言口语化

At 2019/4/26 By David.Yang

介绍下重量级子句LIMIT

c9557e7525dc1ce116ee7fd500b9bada.png

我们在逛马蜂窝的时候,多少会看看游记攻略什么的,

你会发现马蜂窝一页给你10条左右的游记内容,你要继续看的话点分页,

会给你下20条数据。

想象如果没有分页呢?

已下载给你百万千万篇游记,你会不会疯了?

你不疯马蜂窝的数据库也得疯。

那一页一页的数据返回固定的游记数量,是怎么实现的呢?

这就是我们本篇的主角,LIMIT。

LIMIT在SELECT语句当中是构成查询的子句,用来约束返回结果集的行数。

LIMIT接受两个参数,两个参数都为0或正整数。

你每次拉分页时是不是有第几页和每页10篇这两个参数?

他们跟LIMIT子句的参数有关。

LIMIT子句讲解

LIMIT字句语法

SELECT

column1, column2, ...

FROM

table_name

LIMIT OFFSET, SIZE;

ϒOFFSET 指定返回第一行的偏移量

ϒSIZE 指定返回行数最大值

看图说话

b86ad58c859b4a6cf034c02ceb49fd25.png

默认参数

当你的LIMIT只有一个参数时,也会发生作用,这唯一的参数将从结果集的开头返回最大的行数。

SELECT

column1, column2, ...

FROM

table_name

LIMIT SIZE;

等价于:

SELECT

column1, column2, ...

FROM

table_name

LIMIT 0, SIZE;

LIMIT获取前SIZE行数据

控制LIMIT只赋予SIZE一个参数

SELECT

column1, column2, ...

FROM

table_name

LIMIT SIZE;

比如,查找前5个学生

SQL

SELECT

*

FROM

students

LIMIT 5;

得到前五行的学生

e1e93b7ee451ece63906e29dbedaf9fd.png

以上SQL等价于

SELECT

*

FROM

students

LIMIT 0, 5;

LIMIT与ORDER BY子句的配合使用

是,有了LIMIT我们是能够分页看游记了,

但是吧,我想看最新的,

我还想看最热门的,有时候吧还想看游记出发时间比较近,

还想看…

“滚”

82fe49630bee87691205278016ee4cdb.png

但其实是可以实现的啊?

我们这时候就需要配合使用ORDER BY,排序字句了。

LIMIT 一般都会配合ORDER

BY子句使用,

ORDER BY子句将根据指定的条件对结果集实现排序,

然后通过LIMIT子句实现返回。

ORDER BY语法

ORDER BY column DESC/ASC

ORDER BY 后接需要排序的字段,表示按什么排序

DESC 降序排序,由大到小

ASC 升序排序,由小到大

举个例子,比如

--按年龄找到前5的学生,使用此排序条件

SQL

SELECT

*

FROM

students

ORDER BY ageDESC

LIMIT 5;

c84582005ccdcced3f93ce785e669426.png

--找到年龄最小的5名同学

SQL

SELECT

*

FROM

students

ORDER BY age ASC

LIMIT 5;

f6b1d856df0ce5c9e624f55564745fe8.png

看,最小的郭襄才6岁呀。

使用LIMIT实现第N个最高值的获取

在业务分析当中,通常需要在结果集当中获得第N个最高值,

比如成绩第二,销量第五,我们可以通过LIMIT来实现。

步骤:

-按照关键字段进行目标排序,降序

-使用LIMIT进行行获取

举个例子

我们要获取学生当中年龄第2大的学生

-第一个任务,将学生按照年龄进行排序(降序)

SELECT

*

FROM

students

ORDER BY age DESC;

-第二个任务,在排序的结果集当中,查找第二年龄大的学生,

使用LIMIT获取学生。

既然要的是第二年龄大的学生,说明是从年龄从大到小的学生中获取年龄第二大的学生。

偏移量为1,获取一行。

SELECT

*

FROM

students

ORDER BY age DESC

LIMIT 1, 1;

02b72cdfd8e813a41f862cb1965a66a8.png

是他啊!

本篇完结。

你现在多少理解LIMIT子句的特性,也改回使用了吧,

并且还捎带学了点关于排序的内容哦,

后面讲排序也就会更容易接受了。

Bye Bye.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值