3

Symfony2 と Doctrine クエリ ビルダーを使用しています。データベースでブール値を逆にする簡単な方法はありますか?

私は運がないのでこれを試しました:

    $query->update('AppMonitorBundle:Monitor', 'm')
            ->set('m.isActive', '!m.isActive')
            ->where('m.id = :monitor')
            ->setParameter('monitor', $monitor)
            ->getQuery()
            ->execute()
    ;

私はSQLでうまくいくと信じていますが、それは私に与えます:

[Syntax Error] line 0, col 51: Error: Expected Literal, got '!'

代用中!for NOT で同じ結果が得られます。

4

1 に答える 1

7

回避策は次のとおりです。

->set('m.isActive', '1-m.isActive')

テストして私のために働いた。

ブール値は、0 (false) と 1 (true) です。したがって、m.isActiveが true の場合、逆の値は になりfalse (1-1 = 0 = false)ます。が false の場合m.isActive、裏側は になりtrue (1-0 = 1 = true)ます。

于 2013-08-27T06:40:03.013 に答える