mysql limit 用法错误
来源:互联网 发布:南京市投资结构优化 编辑:程序博客网 时间:2024/06/07 06:39
之前一直用oracle,在分页的时候用rownumber,转换到mysql上之后,用limit做分页;
在做某个业务的时候,需要先将数据排序,再分页,在给limit上参数的时候沿用了oracle的rownumber方式传参,最终导致了分页查到的数据越来越多,导致响应越来越慢,最终找到了问题所在;
错误代码:
1 SELECT * FROM td_corporation_user t WHERE (t.`corp_logo` IS NOT NULL AND t.`corp_logo` <> '') AND t.`corp_user_type` = '7' ORDER BY t.`corp_member_number` asc limit 0,15;2 3 4 5 SELECT * FROM td_corporation_user t WHERE (t.`corp_logo` IS NOT NULL AND t.`corp_logo` <> '') AND t.`corp_user_type` = '7' ORDER BY t.`corp_member_number` asc limit 15,31;
上面的代码1是第一次请求的sql,代码2是第二次请求的sql,可以看出limit的第二个参数在递增,这个问题最终导致了第二次请求的时候返回的是排序数据中15~46条数据,一共31条数据,以此类推,以后的会更大;
启示limit的第二个参数并不是像rownumber中行号的结束,而是取多少条数据,所以limit的第二个参数是不需要变的,只需要变第一个行号的起始即可
正确代码:
1 SELECT * FROM td_corporation_user t WHERE (t.`corp_logo` IS NOT NULL AND t.`corp_logo` <> '') AND t.`corp_user_type` = '7' ORDER BY t.`corp_member_number` asc limit 0,15;2 3 4 5 SELECT * FROM td_corporation_user t WHERE (t.`corp_logo` IS NOT NULL AND t.`corp_logo` <> '') AND t.`corp_user_type` = '7' ORDER BY t.`corp_member_number` asc limit 15,15;
0 0
- mysql limit 用法错误
- MySQL limit 错误
- mysql 之limit用法
- Mysql limit用法
- mysql limit用法
- MySql中limit用法
- mysql 的 limit 用法
- mysql中limit用法
- mysql中limit用法
- mysql中limit用法
- mysql中limit用法
- mysql中limit用法
- mysql中limit用法
- mysql中limit用法
- mysql中limit用法
- MySQL limit用法
- mysql中limit用法
- mysql limit用法
- Codeforces 740D Alyona and a tree 二分+树上差分
- Oracle之存储过程实现分页
- 读书笔记-Android对象序列化
- Servlet包介绍
- [RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项
- mysql limit 用法错误
- Android 横向滑动选择
- 关于UnityInputField组件在输入时显示为白色
- 简单的小案例怎么简单的生成验证码
- utf8_unicode_ci与utf8_general_ci的区别
- DOM遍历table
- 二、Python2.x 基本内容2
- RecyclerView多级目录实现
- Java开发中的23种设计模式详解