Yii Query Builder嵌套条件

时间:2014-07-31 13:49:31

标签: php mysql yii

我有Yii查询构建器命令:

echo Yii::app()->db->createCommand()
    ->select('*')
    ->from('table')
    ->where('a = 1')
    ->orWhere(['like', 'b', '%A%'])
    ->orWhere(['like', 'b', '%B%'])
    ->text;

它将产生以下查询:
SELECT * FROM table WHERE ((a = 1) OR (b LIKE '%A%')) OR (b LIKE '%B%')

如何编写嵌套查询以获得如下结果:
SELECT * FROM table WHERE a = 1 AND (b LIKE '%A%' OR b LIKE '%B%')

1 个答案:

答案 0 :(得分:0)

不确定你是否想要这样(正如你所提到的那样)或不是。我的意思是你可以通过简单的字符串来实现这一点,例如

Yii::app()->db->createCommand("SELECT * FROM table WHERE a = 1 AND (b LIKE '%A%' OR b LIKE '%B%')");

如果你想要你的方式然后我不确定bcz我没有测试代码,但我认为它应该工作。例如

 ->where('a = 1',
array('and',
array("b LIKE '%A%'",
array('OR',
array("b LIKE '%B%'")))))