SQL语句中Limit用法超级详细

Limit参数的使用,分两种情况。第一种情况:limit使用一个参数,第二种情况:limit使用两个参数

1、limit使用一个参数的情况

如果"limit 10";则表示将表中的前10条数据查询出来,--检索前10行数据

2、limit使用两个参数的情况

第一个参数表示从第几行数据开始查,第二个参数表示查几条数据,"limit 0,2";表示从第1行数据开始,取2条数据。

区别:

一个参数时,参数值为多少就查询表中前多少条数据

两个参数时,因为limit默认下标从0开始,第一个参数是下标,查数据的话是从第一条查,第二个参数限定了几条数据

拓展:

Limit的下标默认从0开始,下标为0表示第一条记录,和数组一样,数组下标从0开始表示第一个元素

例题:

SQL语句中(startPage - 1) * pageSize, pageSize)

这里修改startPage,数据就会变化,通过后端路径映射,对数据进行判断,计算

startPage为起始页,pageSize为页面大小

当startPage=1时,

(startPage - 1) * pageSize, pageSize) 计算后的结果分别为:0,10

(startPage - 1) * pageSize下标为 0,但是数据条数从1开始,因为pageSize为10,查10条数据,所以数据为1-10条

当startPage=2时,

(startPage - 1) * pageSize, pageSize)计算后的结果分别为:10,10

检索从第11行开始,累加10条数据,显示11-20条数据;

startPage=2这里等于2是文章的起始数,是浏览器页面的页数,是作为用户角度考虑,就像书的页数,一页有多少数据,下图:

SQL语句中Limit用法超级详细_第1张图片

 

和(startPage - 1) * pageSize不同,(startPage - 1) * pageSize等于10,是limit的下标为10,上面提到数据在下标的基础加1,那就是显示11-20这10条数据,因为pageSize限定的是10;刚刚startPage=1,(startPage - 1) * pageSize等于0,限定的大小为10,数据库的下标为0-9,数据是显示1-10条;所以这里的(startPage - 1) * pageSize 为10是符合的,没有冲突

特别注意,容易混淆的地方:

startPage=2,(startPage - 1) * pageSize的10是limit下标的10,pageSize的10是页面大小的10,所以显示的数据是11-20;下标和数据差1,这里是limit两个参数的使用;一个参数的使用,就是参数为多少,就查询参数值为多少条的数据

你可能感兴趣的:(sql,mysql,mybatis)