Мне нужно создать предыдущую/следующую функциональность с зацикливанием. Мое текущее решение, если я выберу MAX(ID)
, будет следующим как NULL
.
Как мне наиболее эффективно получить MIN(ID)
вместо NULL
(и наоборот для другого направления). Конечно, я могу использовать IF
или просто создать второй запрос, если мой результат равен NULL
, но мне интересно, есть ли лучшее решение.
В моей таблице три столбца
ex:
ID foto like
3 A 0
4 B 0
5 C 0
10 D 0
Если я выберу ID 4, следующий будет 5, предыдущий будет 3 // это решение, которое у меня есть
Для идентификатора 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
, я прав?? - person M Khalid Junaid   schedule 13.06.2013