2011-09-19 78 views
8

使用Zend_Db_Table_Abstract有什么办法可以做下面的代码吗?Zend Framework MySQL更新列

UPDATE table SET value=value+1 WHERE value < 10; 

我想是这样的:

$tableModel->update(array('value=value+1'),'value<10'); 

,但没有成功。

我可以获取SELECT中的数据,然后只加1,但这是不行的,因为它非常慢。

回答

11

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

$tableModel->update(array(
    'value' => new Zend_Db_Expr('value + 1') 
), 'value < 10');