【发布时间】:2013-06-09 18:59:30
【问题描述】:
我需要通过循环创建上一个/下一个功能。我当前的解决方案,如果我选择MAX(ID),则下一个为NULL。
我怎样才能最有效地获得MIN(ID) 而不是NULL(反之亦然)。当然,如果我的结果是NULL,我可以使用IF 或者创建第二个查询,但我想知道是否有更好的解决方案。
我的表有三列
例如:
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,next 是 4,previous 是 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 对吗?? -
@dianuj 是的.. 完全正确