MySQL牛客刷题:查询结果限制返回行数

题目描述:

现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。

示例:

MySQL牛客刷题:查询结果限制返回行数

根据输入,你的查询应返回以下结果:

MySQL牛客刷题:查询结果限制返回行数

解题过程:

我写的是:

select device_id 
from user_profile
where id <= 2;

题解涨知识:

使用LIMIT限制结果集

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果只给定一个参数,它表示返回最大的记录行数目。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1。
初始记录行的偏移量是 0(而不是 1)。

例5.检索记录行 6-10

1

SELECT FROM table LIMIT 5,5

例6.检索记录行 11-last

1

SELECT FROM table LIMIT 10,-1

例7.检索前 5 个记录行

1

SELECT FROM table LIMIT 5

所以题解为:

1

SELECT  device_id FROM user_profile ORDER BY id LIMIT 2

效率问题:

select device_id from user_profile limit 0,2---运行效率更高

select device_id from user_profile limit 2 ---运行效率低

也可结合 limit offset: 一起使用时,limit表示要取的数量,offset表示跳过的数量

select device_id from user_profile limit 2 offset 0 // 跳过0条,从第一条数据开始取,取两条数据 ---运行效率中

MySQL和SQL service的不同

1.top不适用于所有的数据库语言。 1)SQL SERVER里可以使用。使用方式如下:

1

select top number/percent column(s) from user-profile;

2)在MySQL就不适用。在MySQL中使用的是limit。 本题解答:

1

select device_id from user_profile limit 2;

上一篇:MySQL的基本语法


下一篇:sql注入--数字型