有没有办法使用Zend_Db_Table_Abstract执行以下代码的操作?
UPDATE table SET value=value+1 WHERE value < 10;
我尝试过类似的事情:
$tableModel->update(array('value=value+1'),'value<10');
但没有成功。
我可以在SELECT
中获取数据,然后只添加1,但这不是选项,因为它非常慢。
答案 0 :(得分:11)
第一个参数数组是列和值的关联映射。如果您没有使用绝对值,即您想使用表达式或函数,则需要使用Zend_Db_Expr。以下内容应增加当前值小于10的任何行的“value”列。
$tableModel->update(array(
'value' => new Zend_Db_Expr('value + 1')
), 'value < 10');