更新多个值时 SQL UPDATE 的执行顺序?

Ani*_*ngh 1 mysql sql

值(以逗号分隔)更新的顺序是什么?

$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)`;
Run Code Online (Sandbox Code Playgroud)

我想确保

rating = (rating * rating_count + %f) / (rating_count + 1.0)
Run Code Online (Sandbox Code Playgroud)

之前执行

rating_count=rating_count+1
Run Code Online (Sandbox Code Playgroud)

不触发两个 SQL 命令。

我不确定更新值语句是否按照它们在 MySql(或任何其他数据库)中用逗号分隔的顺序执行?

Pre*_*gha 5

我认为 UPDATE 将读取当前行并根据现有值而不是更新中的值对其进行更新无关紧要。

所以在这两个 SET 操作中,都会使用 rating_count 的原始值。