2011-09-19 17 views
8

Zend_Db_Table_Abstractを使用して、次のコードが行うことはありますか?Zend Framework MySQLアップデートカラム

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

しかし、誰成功:

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

は、私のようなものを試してみました。

SELECTにデータを取得して1を追加することはできますが、それはオプションではありません。非常に遅いためです。

答えて

11

最初の引数配列は、列と値の連想マッピングです。絶対値を使用していない場合、つまり式または関数を使用する場合は、Zend_Db_Exprを使用する必要があります。以下は、現在の値が10未満の行の「値」列を増やす必要があります。

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