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 · 3846 views
    This topic created in 4370 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   ·   Solana   ·   2932 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:26 · PVG 15:26 · LAX 00:26 · JFK 03:26
    ♥ Do have faith in what you're doing.