gpt4 book ai didi

MySQL - 循环的下一个/上一个 ID

转载 作者:行者123 更新时间:2023-11-29 00:29:56 26 4
gpt4 key购买 nike

我需要通过循环创建上一个/下一个功能。我当前的解决方案,如果我选择 MAX(ID),则下一个为 NULL

如何最有效地获取 MIN(ID) 而不是 NULL(反之亦然)。当然,我可以使用 IF 或者如果我的结果是 NULL 就创建第二个查询,但我想知道是否有更好的解决方案。

我的表有三列

例如:

ID     foto    like

3 A 0
4 B 0
5 C 0
10 D 0

如果我选择ID 4 next is 5, prev is 3//这个方案我有

对于ID 3,下一个是4,上一个是10//这就是我想要的

对于上一个/下一个我使用这个查询

(
SELECT MIN(`ID`) AS id
FROM fotos
WHERE `ID` > '$this->id'
ORDER BY `like` DESC
)
UNION
(
SELECT MAX(`ID`) AS id
FROM fotos
WHERE `ID` < '$this->id'
ORDER BY `like` DESC
)

$this->id 实际选中显示图片

最佳答案

对于当前 foto 的下一个和上一个 id,你可以这样做

SELECT COALESCE((SELECT id FROM `foto` WHERE id<'$this->id' ORDER BY DESC id LIMIT 1),
(SELECT MAX(id) FROM `foto`)) AS `prev`,
COALESCE((SELECT id FROM `foto` WHERE id>'$this->id' ORDER BY id LIMIT 1 ),
(SELECT MIN(id) FROM `foto`)) AS `next`

希望它能很好地满足您的需求

关于MySQL - 循环的下一个/上一个 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17086267/

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