limit分页

分页目的:减少一次数据的处理量。

一、语法格式(limit)

语法格式:
SELECT * FROM table LIMIT startindex,pagesize;

startindex:表示起始数据的行数(MySQL中的第一条数据下标index = 0,类似数组

pagesize:展示的数据数量 

详细版

select                  5
    ...
    字段        
    ...    
from                    1
    ...  
    表名
    ...
where                   2
    ...
    条件
    ...
group by                3
    ...
    分组字段
    ...
having                  4
    ...
    二次过滤
    ...
order by                6
    ...
    排序
    ... 
limit start, size       7
    ...
    分页
    ...    

因此可以将所有的查询结果当做一个字符串,而limit就相当于从这个字符串中快速截取指定的数据。

二、实例

1、接口
    List getUserByLimit(Map map);
2、执行类:

       HashMap map = new HashMap();
       map.put("startIndex",1);
       map.put("pageSize",2);

       List userList = userMapper.getUserByLimit(map);
       for (User user : userList) {
          System.out.println(user);
       }
      sqlSession.close();
3、sql映射:

三、作用:

1、数据分页展示

2、查询第k名

对于查询最大、最小的时候,MySQL聚合函数解决、但是可以思考一下查询第k名(升序、逆序)时聚合函数似乎显得力不从心了,这时候可以使用order by 排序 + limit 进行一下挑选。

查询某个字段第k名的数据。注意是k-1(从0开始!)
select * from 表名 order by 字段 desc/asc limit k-1, 1

力扣176(第二高的薪水)

select (select distinct Salary from Employee order by Salary desc limit 1,1) 
SecondHighestSalary 

你可能感兴趣的:(MyBatis,sql,数据库,mysql)