gpt4 book ai didi

php - MySql:索引循环

转载 作者:行者123 更新时间:2023-11-29 17:54:28 25 4
gpt4 key购买 nike

问题
我有一个包含 x 行的 MySql 表,其中每行都是唯一的 ID。我想为每个用户提供 10 行的 block 。当用户阅读完每一行内容后,他单击“下一步”,我会向他返回下一个 10 行 block (WHERE Id BETWEEN StartIndex AND St​​artIndex + 9)。这可以正常工作,直到 block 与表重叠为止。如何才能有效地从头开始?

我的(不太好)解决方案
获取总计数:

$result = $connection->query("SELECT count(Id) AS num_rows FROM Uris");
$count = $result->fetch_assoc()["num_rows"];

然后是一些 if 逻辑来检查它是否重叠(伪代码):

if (StartIndex + 10 >= count)
makeTwoMySqlCalls(BETWEEN StartIndex AND count-1, BETWEEN 0 AND 10-count-StartIndex)

有更好(更快)的方法吗?

PS:抱歉这个标题,不知道如何称呼这个问题。

最佳答案

使用LIMIT子句:

SELECT * FROM the_table WHERE `id` >= start_id LIMIT 10

这将从值为 start_idid 开始获取最多 10 行。

您必须设法将 start_id 作为值放入查询中,使用准备好的语句。

计算您获得的行数,如果行数少于 10,则表示您已到达最后一页。

如果它们为 0,则表示您在上一次迭代中到达了最后一页。

关于php - MySql:索引循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48987741/

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