Я пытаюсь создать запрос для обновления поля rank
всех записей в таблице на основе значений из той же таблицы.
Мне удалось получить работающий запрос SELECT
, который вычисляет ранг, но мне трудно преобразовать его в UPDATE
. Это запрос:
SELECT
((views_count + comments_count) * (172800 / elapsed)) AS rank
FROM (
SELECT
p.views_count,
(UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(p.createdAt)) AS elapsed,
(SELECT COUNT(*) FROM `comments` AS c WHERE c.photo_id = p.id) AS comments_count
FROM `photos` AS p
) AS m
Как я могу внедрить его в запрос UPDATE
, чтобы обновить значение rank
каждой записи?
Спасибо! :)
РЕДАКТИРОВАТЬ:
Моя структура БД:
[Photo]
id
user_id
views_count
rank
createdAt
[Comment]
id
photo_id
content