如何使用magento更新查询添加到表列中的现有值?

时间:2013-06-20 12:03:31

标签: mysql magento

尝试:

Mage::getModel('module/table')
       ->setId($obj->getId()) //"using _afterSave(Mage_Core_Model_Abstract $obj)"
       ->setCounter(+2) //"want to add to existing integer in table column"
       ->save();

on enable log-all-queries sql语句:

SQL: UPDATE `table` SET `counter` = ? WHERE (id='2')
      BIND: array (
       0 => 1,
     ) 

尝试使用magento模型在每个更新中添加到表列(int)中的现有值(int)。但正如它在sql语句中的明确,没有发生。 我怎样才能做到这一点?

非常感谢你的时间。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您只想将counter的当前值增加1。

假设$obj->getCounter()包含当前计数器值,您可以这样做:

Mage::getModel('module/table')
    ->setId($obj->getId())
    ->setCounter($obj->getCounter() + 1) // increment counter by 1
    ->save();

答案 1 :(得分:0)

我使用zend dp expr

解决了这个问题
Mage::getModel('module/table')
           ->setId($obj->getId()) //"using _afterSave(Mage_Core_Model_Abstract $obj)"
           ->setCounter(new Zend_Db_Expr('counter + 1')) //"want to add to existing integer in table column"
           ->save();

SQL语句:

UPDATE `table` SET `counter` = counter + 1 WHERE (id='2')

的问候,