【发布时间】:2013-11-06 16:28:49
【问题描述】:
我想知道是否有办法在Doctrine DQL中实现简单的“包容性或”?
我可以在 MySQL 中执行以下操作
SELECT * FROM Status WHERE `isGenerated`|`isGeneratable`=:flag;
或
SELECT * FROM Status WHERE :flag IN (`isGenerated`,`isGeneratable`);
但是这些在 DQL 中都不起作用
解决方案还不能回答我自己的问题:/
SELECT s FROM FooBundle:Status s WHERE BIT_OR(s.isGenerated,s.isGeneratable)=:flag
【问题讨论】:
-
这些布尔值或数字会超过 1 吗?
-
布尔值、isGenerated 和 isGeneratable 是 tinyints
-
最后一个查询有什么问题?我认为这是正确的,因为您是
triggering the column for a specific value。 -
s.isGenerated OR s.isGeneratable有什么问题?这将是执行此操作的标准方法。 -
有几种方法可以使用您上次执行的查询在教义中使用
IN()函数。
标签: symfony doctrine-orm dql bitwise-or