我有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%')
答案 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%'")))))