Zend Framework MySQL更新专栏

时间:2011-09-19 20:41:40

标签: mysql zend-framework

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

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

我尝试过类似的事情:

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

但没有成功。

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

1 个答案:

答案 0 :(得分:11)

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

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