gpt4 book ai didi

mysql - 如何在MySQL中选择特定数量的组?

转载 作者:行者123 更新时间:2023-11-29 07:40:12 25 4
gpt4 key购买 nike

我有包含数据的表格: ID| 对于此表,我需要按 productId 列创建钉扎。我知道 LIMIT N,M,但它适用于行而不是组。例如,对于我的 pegination = 2 的表,我希望检索 productId = 1 和 2 的所有 9 条记录(组数为 2)。

那么如何根据组的数量创建聚标?

我将非常感谢您提供示例的答案。

最佳答案

按组进行分页的一种方法是将产品序列分配给查询。使用变量,这需要一个子查询:

select t.*
from (select t.*,
(@rn := if(@p = productid, @rn + 1,
if(@rn := productid, 1, 1)
)
) as rn
from table t cross join
(select @rn := 0, @p := -1) vars
order by t.productid
) t
where rn between X and Y;

通过 t(productid) 上的索引,您还可以使用子查询来执行此操作。然后可以将条件放入 having 子句中:

select t.*,
(select count(distinct productid)
from t t2
where t2.productid <= t.productid)
) as pno
from t
having pno between X and Y;

关于mysql - 如何在MySQL中选择特定数量的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29318004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com