gpt4 book ai didi

mysql返回有效的n次倍数结果

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

我知道有类似的问题,但似乎没有一个适用于我想做什么。

假设以下查询返回 85 个结果。

SELECT * FROM tbl_name WHERE person = 'Tom';

我还有另一个类似的查询,但返回 168 个结果。

SELECT * FROM tbl_name WHERE person = 'Bob';

我试图获得 50 的有效倍数的结果。

仅通过更改 WHERE 子句中的 person 值,我希望得到 Tom 的第 1 个、第 50 个结果的预期输出。这意味着总共有 2 行结果。

同样,Bob 会返回第 1、50、100、150 个结果。总共有 4 行结果。

只用 MySQL 可以做到这一点吗?

最佳答案

搞定了。将 50 更改为不同的增量。这假设您的意思是您想要 1、51、101(每 50 个)。

SELECT
returnTable.*
FROM (
SELECT
@rownum:=@rownum+1 AS rowNumber,
tbl_name.*
FROM forum_posts, (SELECT @rownum:=0) variableInit
WHERE tbl_name.person = 'Tom'
) AS returnTable
WHERE returnTable.rowNumber = 1
OR (returnTable.rowNumber - 1) MOD 50 = 0;

如果你真的想要 1, 50, 100, 150 那么下面的操作(从 WHERE 中删除 -1)

SELECT
returnTable.*
FROM (
SELECT
@rownum:=@rownum+1 AS rowNumber,
tbl_name.*
FROM forum_posts, (SELECT @rownum:=0) variableInit
WHERE tbl_name.person = 'Tom'
) AS returnTable
WHERE returnTable.rowNumber = 1
OR returnTable.rowNumber MOD 50 = 0;

关于mysql返回有效的n次倍数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370685/

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