Zend Framework MySQL更新专栏

Edu*_*uca 8 mysql zend-framework

有没有办法使用Zend_Db_Table_Abstract执行以下代码的操作?

UPDATE table SET value=value+1 WHERE value < 10;
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西:

$tableModel->update(array('value=value+1'),'value<10');
Run Code Online (Sandbox Code Playgroud)

但没有成功.

我可以在a中获取数据,SELECT然后只添加1,但这不是选项,因为它非常慢.

Dav*_*unt 11

第一个参数数组是列和值的关联映射.如果您没有使用绝对值,即您想使用表达式或函数,则需要使用Zend_Db_Expr.以下内容应增加当前值小于10的任何行的"value"列.

$tableModel->update(array(
    'value' => new Zend_Db_Expr('value + 1')
), 'value < 10');
Run Code Online (Sandbox Code Playgroud)