可以使用orWhere和Where函数删除

问题描述 投票:1回答:3

Yii2框架为什么我不能用这个?

$rows = new Query;
$rows->createCommand()
    ->delete('friends')
    ->Where(['userid' => 1 ,'userid' => 2])
    ->orWhere(['userid' => 2 ,'userid' => 1])
    ->execute();
php frameworks yii2
3个回答
2
投票

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

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

看你的代码这相当于

 where userid = 1 and userid = 2 

看看这个有用的指南http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html

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

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

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


0
投票

这是工作代码

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

-2
投票

试试这个

Friends::deleteAll(['and',
            [ 'userid'=>3],
            ['in', 'userid', [1,5,7]]]
        );
© www.soinside.com 2019 - 2024. All rights reserved.