PHP Doctrine 1.2 SET语句中的条件IF语句

时间:2011-07-21 17:15:48

标签: doctrine doctrine-1.2

我想找到SET行的正确语法:

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

感谢您的帮助!

1 个答案:

答案 0 :(得分: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,所以无法测试。但我认为这个想法很清楚:)