簡體   English   中英

更新多個值時SQL UPDATE的執行順序?

[英]Order of execution of SQL UPDATE while updating multiple values?

值(以逗號分隔)的更新順序是什么?

$command = sprintf('UPDATE %s SET rating = ((rating * rating_count + %f) / (rating_count + 1.0)) , rating_count=rating_count+1 WHERE id=%d', $table, $ratingGiven, $id)`;

我要確保

rating = (rating * rating_count + %f) / (rating_count + 1.0)

在執行之前

rating_count=rating_count+1

無需觸發兩個SQL命令。

我不確定是否按MySql(或任何其他DB)中逗號分隔的順序執行update-value-statement?

我認為UPDATE讀取當前行並根據現有值(而不是更新中的值)對它進行更新並不重要。

因此,在兩個SET操作中,將使用rating_count的原始值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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