MariaDB 的奇怪结果

问题描述 投票:0回答:1

我无意中发现了 MariaDB 中的一个错误,导致了意外的结果。下面是 SQL 查询及其各自的结果:

本质上,我的目标是检索分页数据,每页 10 个项目。正如您所观察到的,我按“偏好”表的“preference_group_id”列对结果进行排序。然而,令我困惑的是,第一个结果已经包含偏好 5 和 6,但它们又出现在第二个结果中。无论是否使用 DISTINCT,此问题仍然存在(因此,DISTINCT 子句与该问题无关)。

尝试通过导入完整的 SQL 文件重新创建数据库后,问题不再存在。之后的结果如下:

mysql join mariadb limit offset
1个回答
0
投票

您需要更多订购标准。

有两个带有

preference_group_id = 1
的结果,至少有八个带有
preference_group_id = 2
的结果,大概更多。

这些子组的顺序(按

preference_group_id
分组)未定义,因此您会得到不一致的结果。

尝试按

a.id
作为次要术语进行排序...

... ORDER BY a.preference_group_id, a.id LIMIT ?, 10
© www.soinside.com 2019 - 2024. All rights reserved.