首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

mysql 查询条件降序,数据重复问题

  •  
  •   flyme6 · 36 天前 · 1355 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

    根据时间进行降序查询,(其中时间都是一样的),这时候分页,会出现数据重复,其中表中数据肯定是不重复的。

    17 回复  |  直到 2019-08-19 19:07:53 +08:00
        1
    zcmxw1   36 天前 via Android
    sql 语句问题吧?
        2
    wangsongyan   36 天前 via iPhone
    limit,offset 没算对?
        3
    yidinghe   36 天前 via Android
    跟排序没关系,查询本身的问题
        4
    PHPJit   36 天前 via Android   ♥ 1
    当你点击下一页的时候,这个时候有新数据进来了。
        5
    twocold0451   36 天前 via Android
    再加个其他排序条件,Oracle 遇到过这个问题
        6
    xuanbg   36 天前
    4 楼正解,需要额外的条件才能避免这个问题
        7
    ilovetm   35 天前 via iPhone   ♥ 1
    order by 应该使用多个字段,确认唯一性
        8
    dgjungle   35 天前
    group by 也可以保证唯一性呀
        9
    lxy42   35 天前 via Android
    当排序字段有重复值时,顺序是不确定的。
        10
    cyssxt   35 天前 via iPhone
    这个肯定是 sql 的问题,查一下关联表 join 之类的逻辑
        11
    xujif   35 天前 via iPhone
    信息流应用很少用传统的 page 分页,用递增 id 排序。
        12
    hhyvs111   35 天前
    可能这个时候被删了一些数据,然后分页计算失误
        13
    pussy2019   35 天前   ♥ 1
    ORDER BY `created_at` ASC,`id` ASC
        14
    reus   35 天前   ♥ 1
    既然时间一样,那对时间排序,就等于没有排序,顺序就可以认为是随机的,分页当然不能正确了

    应该有一个兜底的排序字段,一般都是用唯一字段,例如自增 id
        15
    mmdsun   35 天前 via Android
    MySQL oder by 与 limit 合用会出现这个问题。
        16
    waytodelay   35 天前 via Android
    mysql 遇到和你一模一样的问题,排序字段只有时间而且时间有超过分页参数的重复,分页就出问题了,这时加个 id 排序就不会出问题了
        17
    flyme6   33 天前
    @reus 有道理,多谢多谢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1529 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 00:43 · PVG 08:43 · LAX 17:43 · JFK 20:43
    ♥ Do have faith in what you're doing.