Я пытаюсь создать систему рейтинга форума, которая может получать по одной записи за раз на основе предыдущей записи.
Пример таблицы:
| POST_ID | POST_REPLIES |
--------------------------
| 1 | 5 |
| 2 | 2 |
| 3 | 8 |
| 4 | 8 |
| 5 | 12 |
--------------------------
Если я это сделаюпростой запрос ORDER BY POST_REPLIES DESC
, я получаю POST_ID 5, 4, 3, 1, 2
.
Но то, что я хочу сделать, - это получить только следующую строку (то есть по одной строке за раз), и основываясь на сообщении, в котором она находится в данный момент.
Например: если я сейчас просматриваю пост № 3, то будет кнопка с надписью «следующий пост с наибольшим количеством ответов», которая будет указывать на пост № 4.
У меня сейчас проблемыимея дело с дубликатами, я наталкиваюсь на цикл от 3 до 4 (от 3 до 4 и от 4 до 3, а не 5)
Я поиграл с присоединением таблицы к себе и сравнением строк сПосмотрите, какой из них больше или меньше, но поскольку я использую ограничение 1, строка всегда равна 1 и, таким образом, бесполезна.Итак, основной запрос, который у меня был:
SELECT * FROM posts
WHERE post_id != '$currentPost'
ORDER BY POST_REPLIES DESC, POST_ID DESC LIMIT 1
Как я могу это сделать?