【问题标题】:can use orWhere and Where functions with delete可以将 orWhere 和 Where 函数与 delete 一起使用
【发布时间】:2016-07-12 11:57:59
【问题描述】:

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

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

【问题讨论】:

    标签: php frameworks yii2


    【解决方案1】:

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

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

    看你的代码这相当于

     where userid = 1 and userid = 2 
    

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

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

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

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

    【讨论】:

      【解决方案2】:

      这是工作代码

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

      【讨论】:

        【解决方案3】:

        试试这个

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

        【讨论】:

        • 哈哈,这很有趣,我在 2 年 9 个月前问过这个问题 :D :D
        • 可能还有人需要答案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-12
        • 2017-11-29
        • 1970-01-01
        • 2023-02-04
        • 1970-01-01
        相关资源
        最近更新 更多