假装是大佬
- 假装是大佬 2017-11-01 已签到连续签到1天,获得了5个金钱
- 假装是大佬 2017-10-30 已签到连续签到1天,获得了5个金钱
- 假装是大佬 2017-10-27 已签到连续签到4天,获得了20个金钱
- 假装是大佬 2017-10-26 已签到连续签到3天,获得了15个金钱
- 假装是大佬 2017-10-25 已签到连续签到2天,获得了10个金钱
- 假装是大佬 2017-10-24 已签到连续签到1天,获得了5个金钱
- 假装是大佬 2017-10-19 已签到连续签到4天,获得了20个金钱
- 假装是大佬 2017-10-18 已签到连续签到3天,获得了15个金钱
- 假装是大佬 赞了回答
不太清楚你的使用场景,建议多结合自己项目的业务场景+yii2debug插件 或者 自行使用
getRawSql
方法进行调试这边提供一小段测试代码(其中的表名及字段名均无实际意义)
$query = new \yii\db\Query(); $sql1 = $query->from('test_table')->where([ 'OR', ['col1' => [1,2,3]], [ 'AND', ['col2' => 3], ['like', 'col3', 'defg'], ] ])->createCommand()->getRawSql(); var_dump($sql1); $sql2 = $query->from('test_table')->where([ 'in', 'col1', [1,2,3] ])->orWhere([ 'AND', ['col2' => 3], ['like', 'col3', 'defg'], ])->createCommand()->getRawSql(); var_dump($sql2);
执行结果
#sql1 SELECT * FROM `test_table` WHERE (`col1` IN (1, 2, 3)) OR ((`col2`=3) AND (`col3` LIKE '%defg%')) #sql2 SELECT * FROM `test_table` WHERE (`col1` IN (1, 2, 3)) OR ((`col2`=3) AND (`col3` LIKE '%defg%'))
顺便提下就是 AR查询条件的默认优先级,其实这个并没有所谓的默认优先级。查询条件的组合,取决于你的使用顺序。