› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
black11black
V2EX  ›  MySQL

mysql 搜索语句中 OFFSET 可以脱离 limit 单独使用吗?

  •  
  •   black11black · Aug 10, 2020 · 3243 views
    This topic created in 2236 days ago, the information mentioned may be changed or developed.

    如题,业务场景是,假设我有一个铆定日期为 2020 年 1 月 1 号

    我需要获取该日期往前 10 天开始,到最新日期为止的所有数据,

    即根据 2020-1-1 获取 2019-12-21 到 2020-8-1 (假设今天)的数据,有没有办法在一次搜索里完成?

    以前做这种实现都会拆成两条,用 UNION 搞定

    比如写成这样

    SELECT date FROM `table` WHERE date < '2020-1-1' ORDER BY date DESC LIMIT 10
    UNION
    SELECT date FROM `table` WHERE date >= '2020-1-1' ORDER BY date
    

    一直用的也挺好的,今天想起来问一下万能的 v 友们有没有更优雅的写法

    比如这种感觉的

    SELECT date FROM `table` WHERE date >= '2020-1-1' ORDER BY date OFFSET -10
    
    8 replies  •  2020-08-12 00:15:37 +08:00
    AngryPanda
        1
    AngryPanda  
       Aug 10, 2020
    没看出来 union 的必要性。
    black11black
        2
    black11black  
    OP
       Aug 10, 2020
    @AngryPanda 日期不连贯,没法在业务逻辑中预先求出前 10 天的位置。
    lxk11153
        3
    lxk11153  
       Aug 10, 2020
    这样?
      //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
       mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last
    love
        4
    love  
       Aug 10, 2020
    limit 一个亿 不行吗??
    lxk11153
        5
    lxk11153  
       Aug 10, 2020
    fixed #3: 当我没说。
    Justin13
        6
    Justin13  
       Aug 11, 2020 via Android
    可以试试 Interval 做日期的偏移
    zhangysh1995
        7
    zhangysh1995  
       Aug 11, 2020
    SELECT date FROM `table` WHERE date BETWEEN '2019-12-21' AND '2020-8-1' ;
    black11black
        8
    black11black  
    OP
       Aug 12, 2020
    @Justin13 看了看,这种偏移应该跟业务逻辑里实现的效果是一样的,跟需求还是不太一致
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2562 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 00:20 · PVG 08:20 · LAX 17:20 · JFK 20:20
    ♥ Do have faith in what you're doing.