繁体   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