我正在使用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给出相同的结果。
答案 0 :(得分:5)
这是一种解决方法:
->set('m.isActive', '1-m.isActive')
经过测试并为我工作过。
布尔值只是0(表示为假)和1(表示为真)。因此,如果m.isActive
为真,则反向值为false (1-1 = 0 = false)
。如果m.isActive
为假,则反面为true (1-0 = 1 = true)
。