《SQL必知必会》里的limit语句部分
提到【第0行】,其实这是一种错误的说法,非常不利于理解。
同理,还说到了“offset 5是从哪儿开始”,这也是一种错误的说法。
offset 5,其实表示的是跳过5行,而不是从5行开始。
offset并不是给第1行数据标识下标为0的记号。新手很容易被误导,以为应该理解为“第0行”或者“offset指定从m行开始”。
之前看这里的时候就觉得理解起来很奇怪很别扭,大家真的不要被误导了。
不要有第0行数据的理解,也不要有offset m是从m行开始的理解。
正确理解offset
offset 作名词时意为偏移,位移,偏移量,偏离量;off 离开 + set 开始;建立。
offset应该要理解为偏移量,表示跳过的意思,即跳过多少条数据。
offset 0,就是表示跳过0行,不要理解为从第0行开始。
offset 5,就是表示跳过5行,不要理解为从第5行开始。
默认情况偏移量为0,不写offset的时候就是默认偏移量为0,不跳过一行数据。
select * from table_name limit N offset M; 表示跳过M 条数据后,选取N条数据;
select * from table_name limit M,N; 表示跳过M条数据后,选取N条数据;
例如一张表id为:1,2,3,4,5,6
则 select * from table_name limit 3 offset 2: 获得的id为:3,4,5
前一个数值为获取条数N,后一个数值为跳过个数M;
select * from table_name limit 3,2 :获得的id 为4,5
前一个数值为跳过个数M,后一个为获取条数N。
《SQL必知必会》这本书是很多人的SQL入门书,大部分内容没问题,部分翻译或者解读是不太对的,希望大家不要被误导了,那些理解起来很牵强的东西,可以大胆质疑,小心求证,什么第0行的听起来就很别扭。欢迎讨论。
文章强调在SQL查询中,offset表示跳过指定行数而非从某行开始。offset0是从第一行开始,offset5则是跳过前五行。使用limit和offset组合进行数据分页,前者定义获取数据的数量,后者定义跳过的行数。正确的理解能避免新手在数据查询时的误解。
2174

被折叠的 条评论
为什么被折叠?



