› 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
jerryge
V2EX  ›  MySQL

查询数据在表中的位置

  •  
  •   jerryge · Jun 19, 2014 · 4152 views
    This topic created in 4485 days ago, the information mentioned may be changed or developed.
    mysql数据库假如描述人的一张表中有age=1,age=3,age=4,age=5,age=7,这样五行数据,我应该怎么查询才能知道age=4这条数据前面还有几条数据,或者说怎么知道offset的值。其实我是在做一个数据同步,比如我今天备份到了age=4,我明天知道应该从age=5这条开始备份,那我就需要知道offset的值。
    多谢了!!
    7 replies  •  2014-06-19 01:44:08 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       Jun 19, 2014 via iPhone
    select count(*) from tbl where age <= 4
    jerryge
        2
    jerryge  
    OP
       Jun 19, 2014
    @Livid age=3,age=5,age=4,age=1,age=7 万一是这样的呢。当然我可以设个ID字段是递增的。多谢!
    Mutoo
        3
    Mutoo  
       Jun 19, 2014
    @jerryge select count(*) from tbl where age <= 4 order by age
    xiandao7997
        4
    xiandao7997  
       Jun 19, 2014 via Android
    @jerryge 这个假设本身就是不成立的,以前从别处看过,数据库的数学基础就是集合论,而一个集合里的数据是无序的。
    以前做项目的时候也遇到过 SELECT * 选出的结果不是按 id 递增的顺序来显示的,DBA说如果一定要按顺序显示,还是加一个 sort by 保险。
    回到你的需求,如果需要根据一个数据作 offset 来备份,而 id 又不一定有序(不递增的情况下), 那可以用一个字段保存时间戳,根据时间总不会有什么错的。
    jerryge
        5
    jerryge  
    OP
       Jun 19, 2014
    @xiandao7997 嗯,是我自找麻烦。
    hjse7en
        6
    hjse7en  
       Jun 19, 2014
    建议加个字段,保存时间
    jerryge
        7
    jerryge  
    OP
       Jun 19, 2014
    @hjse7en 嗯,其实有ID,有创建时间,更新时间。我就是作死问一下。多谢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2877 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:18 · PVG 20:18 · LAX 05:18 · JFK 08:18
    ♥ Do have faith in what you're doing.