簡體   English   中英

如何使用選擇查詢的結果更新一行的多個mysql列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM