[英]How can I update multiple mysql columns of a row using the result of a select query?
我有一個評論表,其中包含三種對項目評分的方法。 然后,項本身具有三列以分別保存每個值的平均值。
我可以在更新查詢中使用三個嵌套查詢來執行此操作,但是我覺得這樣效率不高...有沒有辦法一次更新所有這些?
到目前為止,我已將其用作選擇查詢:
SELECT AVG(rating_1),AVG(rating_2),AVG(rating_3) FROM items_reviews WHERE item_id = 1
我只是不知道如何使用該查詢的結果來更新項目行。
您可以在UPDATE
中使用UPDATE
:
UPDATE items a
INNER JOIN
(
SELECT
item_id,
AVG(rating_1) AS avg1,
AVG(rating_2) AS avg2,
AVG(rating_3) AS avg3
FROM items_reviews
WHERE item_id = 1
GROUP BY item_id
) b ON a.item_id = b.item_id
SET
a.avgrating1 = b.avg1,
a.avgrating2 = b.avg2,
a.avgrating3 = b.avg3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.