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 '!'

替补!对于 NOT 给出相同的结果。

4

1 回答 1

7

这是一种解决方法:

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

测试并为我工作。

布尔值只是 0(为假)和 1(为真)。因此,如果m.isActive为真,则反向值将false (1-1 = 0 = false). 如果m.isActive为假,则反面将true (1-0 = 1 = true).

于 2013-08-27T06:40:03.013 回答