1

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

$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(或任何其他数据库)中用逗号分隔的顺序执行?

4

1 回答 1

5

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

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

于 2013-05-04T08:23:18.673 回答