limit+orderBy陷阱
碰到一个奇怪的bug,在排序的时候对一个非唯一的字段做order by,
结果在分页的时候,发现每一页的数据都是乱的,并不是对整个排序之后再去limit的。
当我们用唯一字段去排序的时候,因为在找到满足limit的条件的时候还不算,因为唯一所以如果要知道最后的排序的话,需要对整张表排序
当我们用非唯一字段排序的时候,如果最小的若干个数据已经满足条件了,就不会对剩下的进行排序了,而是直接返回对limit的数据进行排序
limit+orderBy陷阱的更多相关文章
- Mysql order by与limit混用陷阱
在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N. ...
- ServiceStack.OrmLite 笔记10-group having 分页orderby等
group having 分页等 var ev = OrmLiteConfig.DialectProvider.SqlExpression(); group的使用 同sql一样,注意group分组的字 ...
- Python 培训之MySql
1. Install 1.1 install mysql sudo apt-get install lamp-server^ (tip: Set password) 1.2 install MySQ ...
- PHP 链式操作
所谓链式操作最简单的理解就是 操作完毕之后再返回对象$this 想必大家工作中基本都快用烂了得东西. 下面就是一个链式操作MYSQL数据库类. 最常见的链式操作 每一个方法操作之后,返回一个对象,直到 ...
- JAVA导出Excel封装
1.数据bean public class ExcelBean { private String name; private String sheetName; private ExcelTitle[ ...
- 用Dedecms5.7的arclist标签调用文章内容
arclist标签调用文章内容 首先大家都知道在Dedecms中,list标签是可以调用文章内容的,调用格式就不再此冗述了.从我个人来说,我非常不喜欢用list标签调用,有可能我会尽量使用arclis ...
- laravel 不理解的call方法
返回结果: 原来是调用同控制器的这四个方法之一...vendor\zhiyicx\plus-question\src\API2\Controllers\UserQuestionController.p ...
- 11. Go 语言网络编程
Go 语言网络编程 Go语言在编写 web 应用方面非常得力.因为目前它还没有 GUI(Graphic User Interface 图形化用户界面)的框架,通过文本或者模板展现的 html 界面是目 ...
- Mysql序列(七)—— order by优化
前言 在mysql中满足order by的处理方式有两种: 让索引满足排序,即扫描有序索引然后再找到对应的行结果,这样结果即是有序: 使用索引查询出结果或者扫描表得到结果然后使用filesort排序: ...
随机推荐
- STM32入门系列-开发工具keil5安装
主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...
- CSS动画之动画模块
过渡模块和动画模块的区别:过渡动画需要人为的去触发这个反应,而动画模块不需要人为相同点:都是动画:都是系统新增的属性:都是要满足三要素才有动画效果三要素:1.告诉系统执行哪个动画,要写出动画名称:an ...
- TCP连接性能指标之TCP关闭过程(四次挥手)
TCP关闭过程(四次挥手): ESTABLISHED: 当前建立连接状态 CLOSE_WAIT:Server端收到来自Client端的FIN包后,发送ACK回Client端,进入CLOSE_WAIT ...
- linux用户及组相关文件介绍
用户和组文件介绍 1.用户账号文件:passwd passwd命令用于设置用户的认证信息,包括用户密码.密码过期时间等.系统管理者则能用它管理系统用户的密码.只有管理者可以指定用户名称,一般用户只能变 ...
- [Luogu P1122]最大子树和 (简单树形DP)
题面 传送门:https://www.luogu.org/problemnew/show/P1122 Solution 这是一道简单的树形DP题. 首先,我们可以转换一下题面,可以发现,题目要求我们求 ...
- Docker(6)- docker info 命令详解
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 显示 Docker 系统信 ...
- dup与dup2
dup与dup2 #include <unistd.h> int dup(int oldfd); /* oldfd: 要复制的文件描述符 返回值: 新的文件描述符 dup调用成功: 有两个 ...
- sdsdsd
create PROCEDURE b2(in c_year int,in co int)begin declare num int; if exists(select * from class whe ...
- leetcode132:4sum
题目描述 给出一个有n个元素的数组S,S中是否有元素a,b,c和d满足a+b+c+d=目标值?找出数组S中所有满足条件的四元组. 注意: 四元组(a.b.c.d)中的元素必须按非降序排列.(即a≤b≤ ...
- 【Java】线程的创建方式
1.继承Thread类方式 这种方式适用于执行特定任务,并且需要获取处理后的数据的场景. 举例:一个用于累加数组内数据的和的线程. public class AdditionThread extend ...