题目描述:
现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。
示例:
根据输入,你的查询应返回以下结果:
解题过程:
我写的是:
select device_id
from user_profile
where id <= 2;
题解涨知识:
使用LIMIT限制结果集
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果只给定一个参数,它表示返回最大的记录行数目。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1。
初始记录行的偏移量是 0(而不是 1)。
例5.检索记录行 6-10
1 |
|
例6.检索记录行 11-last
1 |
|
例7.检索前 5 个记录行
1 |
|
所以题解为:
1 |
|
效率问题:
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 |
|
2)在MySQL就不适用。在MySQL中使用的是limit。 本题解答:
1 |
|