【问题标题】:sql UPDATE, a calculation is used multiple times, can it just be calculated once?sql UPDATE,一个计算用了多次,能不能只计算一次?
【发布时间】:2010-06-14 16:50:58
【问题描述】:

使用:

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 编写代码。

【问题讨论】:

    标签: php mysql query-optimization


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 2020-06-09
      • 2011-11-18
      • 2021-06-11
      • 1970-01-01
      • 2015-04-08
      • 2019-11-18
      • 1970-01-01
      相关资源
      最近更新 更多