Doctrine:Multiple(whereIn OR whereIn)查询?

Tom*_*Tom 13 doctrine symfony1 where-clause dql

我在使用Doctrine制作一个相当简单的查询时遇到了麻烦......

我有两个数组($ countries,$ cities),我需要检查数据库记录值是否与任何内部匹配.我正在寻找类似的东西:

->whereIn('country', 'city', $countries, $cities)
Run Code Online (Sandbox Code Playgroud)

......"国家"是美元国家的地方,"城市"是美元城市的地方.

我可以把两者分开,但是所需的查询有很多其他条件,所以这是不可能的.我之后得到的SQL将是:

SELECT ... 
WHERE ... 
AND ...
AND ... 
AND ('country' IN (1,2,3) OR 'city' IN (7,8,9))
AND ... 
AND ...;
Run Code Online (Sandbox Code Playgroud)

因此,人们可以认为它也只是一个包围问题.有人知道Doctrine DQL是否可以实现这一点?我查看了文档,但找不到任何方向.

谢谢

Tom*_*Tom 39

在对这个废话进行了一个小时的实验之后,这里是使其工作的语法.

$q->andWhere('country IN ? OR city IN ?', array(array(1, 2, 3), array(7, 8, 9)));
Run Code Online (Sandbox Code Playgroud)