在yii2查询生成器中如何在运算符中使用where子句

时间:2016-02-19 04:07:30

标签: php mysql yii yii2

我没有找到yii2查询构建器yii\db\Query中使用where子句的运算符的任何示例。我暂时用这种方式

$result = (new \yii\db\Query)
    ->select('*')
    ->from('customer c')
    ->where('c.status in (' . implode(',', [0,1]) . ')')->all();

但必须有更好的方法来做到这一点。提前致谢

1 个答案:

答案 0 :(得分:7)

$result = (new \yii\db\Query)
    ->select('*')
    ->from('customer c')
    ->where(['c.status' => [0, 1]])->all();

yii\db\QueryInterface::where() API中:

  

指定为数组的$condition 可以采用以下两种格式之一:

     
      
  • 哈希格式:['column1' => value1, 'column2' => value2, ...]
  •   
  • 运营商格式:[operator, operand1, operand2, ...]
  •   
     

...如果值是数组,将生成IN表达式

     
      
  • ['id' => [1, 2, 3], 'status' => 2]生成(id IN (1, 2, 3)) AND (status = 2)
  •