sql UPDATE,计算多次使用,可以只计算一次吗?

时间:2010-06-14 16:50:58

标签: php mysql query-optimization

使用:

UPDATE `play`
   SET `counter1` = `counter1` + LEAST(`maxchange`, FLOOR(`x` / `y`) ), 
       `counter2` = `counter2` - LEAST(`maxchange`, FLOOR(`x` / `y`) ), 
       `x` = MOD(`x`, `y`) 
 WHERE `x` > `y` 
   AND `maxchange` > 0

如您所见,LEAST(maxchange, FLOOR(x / y) )被多次使用,但它应始终具有相同的值。有没有办法优化这个,只计算一次?

我正在用PHP编写此代码,以备记录。

1 个答案:

答案 0 :(得分:4)

数据库引擎查询优化器应该优化它。

如果您想确定查看explain plan。我不认为MySQL支持解释更新,但它使用与SELECT相同的查询优化器,因此您可能必须将其转换为选择。