Mysql 按 create_time 排序导致的问题

一、已知:总记录不超过3000行

二、下列SQL执行数据存在

SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 AND id = 1988 ORDER BY `create_time` DESC LIMIT 0,1000

三、但是下列3条limit记录中都没有id=1988这条数据。

SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 ORDER BY `create_time` DESC LIMIT 0,1000
SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 ORDER BY `create_time` DESC LIMIT 1000,1000
SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 ORDER BY `create_time` DESC LIMIT 2000,1000

四、分析

首先limit偏移是没问题的,那么问题可能出在create_time排序上了。

五、原因

limit 没查出id=1988是因为create_time有重复的,我们又是根据create_time排序的。导致limit的时候有些数据重复了,有些没查出来。

六、解决办法

按时间降序改为按主键ID降序即可。

SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 ORDER BY `id` DESC LIMIT 0,1000
SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 ORDER BY `id` DESC LIMIT 1000,1000
SELECT * FROM `job_user` WHERE `status` IN (1,2,3,4)  AND `is_deleted` = 0 ORDER BY `id` DESC LIMIT 2000,1000

七、总结

这个问题弄的我找了半天,sql语句还是得严谨,不然像我这样就很尴尬了

Mysql 按 create_time 排序导致的问题相关推荐

  1. mysql改了排序规则不生效_Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题...

    Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...

  2. MySql 你知道 order by 是怎么回事吗? MySql全字段排序与 rowid 排序

    志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的 ...

  3. mysql调优-排序

    mysql调优-排序优化 第一章.mysql索引排序 文章目录 mysql调优-排序优化 mysql的两种排序方式 方式A:filesort(文件排序) 双路查找(旧) 单路查找(新) 解决方案:(核 ...

  4. mysql union如何排序_Mysql中UNION用法与排序

    最近也是在写项目中碰到的这个问题,需要将两个SELECT查询结果组合起来进行分组排序,想到了用union方法,用TP的union操作根本无法完成复杂的union操作,于是搜罗了一下,先说一下union ...

  5. mysql key value 排序_MySQL利用索引优化ORDER BY排序语句的方法

    创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(sname desc ...

  6. mysql max_allowed_packet 设置过小导致记录写入失败

    mysql max_allowed_packet 设置过小导致记录写入失败 mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会受max_allowed_packet 参 ...

  7. 解决MySQL事务未提交导致死锁报错 避免死锁的方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xuheng8600/article/d ...

  8. mysql改表字段类型导致数据丢失_故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题【转】...

    一.问题起源 不久前用户反馈部门的 MySQL 数据库发生了数据更新丢失.为了解决这个问题,当时对用户使用的场景进行了分析.发现可能是因为用户在两台互为主从的机器上都进行了写入导致的数据丢失. 如图所 ...

  9. mysql 中文字符排序规则_mysql中字符集和排序规则说明

    数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). 一.字符集 字符集,即用于定义字符在数据库中的编码的集合. 常见 ...

  10. mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...

    MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序.下面给出3种比较常用的排序方式,一起看看吧 MySQL常规排序.自定义排序和按中文拼音字母排 ...

最新文章

  1. 【转】简述configure、pkg-config、pkg_config_path三者的关系
  2. vue+vuecli+webapck2实现多页面应用
  3. (转)C结构体之位域(位段)
  4. 计算机硬件配置组件,配置vcenter server的硬件(默认指windows版本的)
  5. 噢,老天爷! 属于Java的协程终于来了!
  6. 《Python分布式计算》 第8章 继续学习 (Distributed Computing with Python)
  7. BigDecimal的加减乘除
  8. 你真的会使用Eclipse的debug吗?
  9. 服务器如何关闭登录日志文件,linux云服务器登录日志文件
  10. WPA3 标准被曝严重漏洞,WiFi 密码可遭窃取?
  11. 从零基础入门Tensorflow2.0 ----四、12. tf_data基础api使用
  12. 2021-09-06单纯形计算方法(
  13. mac整站下载工具wget
  14. chromeOS介绍
  15. 淘口令流量属于淘宝什么流量来源 如何用淘口令来刷流量
  16. matlab中灰色模型代码,灰色模型matlab代码
  17. hexo+yilia添加背景特效
  18. Linux目录文件操作命令篇--(工作常用命令的深度使用,小白必收藏)
  19. 如何做好团队测试建设
  20. 计算机显示找不到gpedit,Win7系统打开组策略提示找不到文件gpedit.msc怎么办

热门文章

  1. 16g电脑内存有什么好处_电脑内存容量都是16GB, 买单根16G好还是双根8G好呢?
  2. 安卓zip解压软件_安卓zip文件压缩RAR解压app下载-安卓zip文件压缩RAR解压安卓版 v3.0.4...
  3. 3809. 修改数组——AcWing题库
  4. 2010-2020年全国poi兴趣点
  5. shell 查看空行与删除空行
  6. 凸优化系列二:确定步长一维搜索算法
  7. shell 计算代码运行时间
  8. 线性表的顺序表示---练习题(算法设计题
  9. python部署到服务器上解析不到模块_在服务器上部署kafka-python包
  10. docker版本包 乌班图_在Ubuntu 18.04系统中安装指定docker版本的简单方法