2011-07-21 51 views
3

我想找到正確的語法,SET行:條件IF語句在PHP 1.2學說SET語句

Doctrine_Query::create() 
->update('Media m') 
->set('m.fallback IF(m.id = ?, 1, 0)', $id) <-- not correct 
->execute(); 

感謝您的幫助!

+1

我不認爲更新支持...實際更新不支持遠遠超過簡單的where子句,你可能會訴諸RawSql或使用PDO。 – prodigitalson

回答

0

我認爲這可能與兩個查詢來完成:

Doctrine_Query::create() 
    ->update('Media m') 
    ->set('m.fallback', 1) 
    ->where('m.id = ?', $id) 
    ->execute(); 

Doctrine_Query::create() 
    ->update('Media m') 
    ->set('m.fallback', 0) 
    ->where('m.id != ?', $id) 
    ->execute(); 

它是否適合你,我不知道,但至少會做你想要什麼。 開箱即用,因爲我手邊沒有Doctrine 1.2,所以無法測試這個。但我認爲這個想法是明確的:)

+0

謝謝。我非常喜歡這樣的東西 - 希望有一個很酷的班輪:) – cyberwombat