2

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

4

3 回答 3

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。

于 2009-11-10T20:13:13.510 回答
0

对于 cond2 OR cond3 使用其中

其中 cond1 和其中 cond2 或其中 cond3

希望这能让你开始

于 2009-11-02T04:03:28.250 回答
0

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

... where cond1 andWhere (cond2 orWhere cond3)

工作?或者无论实际语法是什么。如果我错了,请随时告诉我,我会删除它并偷偷溜走;)

于 2009-11-02T05:57:56.200 回答