可以将 orwhere 和 Where 函数与删除一起使用


can use orWhere and Where functions with delete

Yii2 框架 为什么我不能使用它?

$rows = new Query;
$rows->createCommand()
    ->delete('friends')
    ->Where(['userid' => 1 ,'userid' => 2])
    ->orWhere(['userid' => 2 ,'userid' => 1])
    ->execute();

在 where() 和 or orWhere() 函数中,你使用的是哈希格式(['key'=> 'value'])

哈希格式

哈希格式最适合用于指定多个 AND 连接的子条件,每个子条件都是简单的相等式 断言。它被写成一个数组,其键是列名和 值 列应为的相应值。

查看你的代码 这相当于

 where userid = 1 and userid = 2 

查找此NA有用的指南 http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html

第二个但最重要的...在Yii2中,你有delete()和deleteAll()

delete() 删除与此活动记录对应的表行。

deleteAll() 使用提供的条件删除表中的行。

这是

工作代码

$rows->createCommand()->delete('friends',['userid' =>[1,2], 'friendid' =>[1,2])->execute();

试试这个

Friends::deleteAll(['and',
            [ 'userid'=>3],
            ['in', 'userid', [1,5,7]]]
        );