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

该博客讨论了如何从用户信息表user_profile中选取前两个用户的设备ID。通过使用SQL的LIMIT子句,可以有效地限制查询结果。示例查询包括使用OFFSET和LIMIT来获取指定数量的记录,以及优化查询效率的方法。对于MySQL,LIMIT 2可直接获取前两个记录,而在某些数据库系统如SQL Server中,可能需要使用TOP关键字。博客还对比了不同数据库系统的语法差异。

题目描述:

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

示例:

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

解题过程:

我写的是:

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;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值