小编mar*_*rcv的帖子

同一记录在有序分页查询中多次显示

一些记录通过以下查询显示在多个结果“页面”上:

SELECT 
    `description`,
    `wallpaper`
FROM
    `bbr_bar`
WHERE
    `country_id` = '2510769'
ORDER BY
    `online` DESC
Run Code Online (Sandbox Code Playgroud)

例如,id 为 99 的记录显示在第一个“页面”( LIMIT 10 OFFSET 0) 上,但也显示在最后一个“页面”上LIMIT 10 OFFSET 50。显然这不应该发生。

在以下情况下该问题消失:

  • 如果我不过滤查询,或者不排序它( 和country_id都是onlineint(11)不是外键)
  • 如果我从子句中删除两个字段之一SELECT(都是varchar(255),而不是外键)
  • 如果我删除架构中的某些表或字段。然而,经过几个小时的努力,我仍然无法确定哪些表/字段有影响,哪些没有影响。看起来像是随机的(即使我知道不是)。因此,我不会在此处粘贴任何CREATE TABLEINSERT声明,因为我认为它们不相关。

我唯一可以肯定的是,如果我将mysqldump所有表恢复到新模式中,问题仍然存在。

(表中还有其他字段,但添加/删除它们对结果没有影响)。

问题:

  1. 如果我得出的结论是我的模式中的某些内容已损坏,我是对的吗?
  2. 我该如何解决这个问题?

(MySQL 版本:5.6.24 Win32 x86)

mysql order-by select mysql-5.6

4
推荐指数
1
解决办法
6457
查看次数

标签 统计

mysql ×1

mysql-5.6 ×1

order-by ×1

select ×1