zoukankan      html  css  js  c++  java
  • MySQL 根据时间排序失败

    问题背景:MySQL数据库中,如果使用datetime,那其实只是精确到了秒。如果基于它排序并分页查询,若同一秒的数据超过一页,则多次查询得到的结果集可能会出现不一样的灵异事件。SQL:

    SELECT * FROM table_name WHERE id> 100 order by create_time DESC;
    

    其中create_time的类型是datetime,id是自增长主键。

    问题分析:分页排序查询场景,大量数据为同一个create_time时,MySQL随机返回数据。MySQL数据库中datetimedatetime(n), 0<=n<=6 是有精度区别的,如果使用datetime,那其实只是精确到了秒。

    问题解决:排序规则同时加上id,SQL如下:

    SELECT * FROM table_name WHERE id> 100 order by create_time DESC, id desc;
    

      文章到这里就结束了,看完之后你有什么想法想要跟大家分享呢?评论区在等着你!


      读后有收获,小礼物走一走,请作者喝咖啡。

    赞赏支持

  • 相关阅读:
    Redis原理篇
    Redis基础
    CentOS7 Redis5.0.5环境搭建
    通用后台管理系统(10)项目打包、修改配置文件、项目开源地址
    通用后台管理系统(9)-编写首页接口、实现、控制器
    通用后台管理系统(8)-编写登入控制器
    生成常用的msf
    badusb资料收集
    后渗透之meterpreter攻略
    linux命令备忘录
  • 原文地址:https://www.cnblogs.com/east7/p/15729796.html
Copyright © 2011-2022 走看看