学说 - 你怎么问WHERE cond1 AND(cond2 OR cond3)

时间:2009-11-02 03:41:12

标签: sql symfony1 doctrine

在Symfony项目中使用Doctrine时,我遇到了需要应用条件然后满足以下两个条件之一的情况(这两个条件恰好都是子查询)。我知道andWhere()和orWhere()函数,但是使用它们生成以下内容时遇到了麻烦:   在哪里cond1 AND(cond2或cond3)

3 个答案:

答案 0 :(得分:2)

您可以使用DQL:

执行此操作
$models = Doctrine::getTable('ModelName')
    ->findByDql(
        'field_one = ? AND (field_two = ? OR field_three = ?)',
        array('cond_1','cond_2', 'cond_3')
    );

所以$ models将是一个包含所有找到元素的Doctrine_Collection。

答案 1 :(得分:0)

用于cond2或cond3使用其中

其中cond1和其中cond2或其中cond3

希望这能让你开始

答案 2 :(得分:0)

我没有听说过这个工具,但不应该像

那样
... where cond1 andWhere (cond2 orWhere cond3)

工作?或者不管实际的语法是什么。随意告诉我,如果我错了,我会将其删除并在角落里溜走;)