sql删除查询与where,和,或laravel

时间:2017-04-03 11:55:34

标签: mysql laravel

您好我正在构建一个删除查询,以便在laravel中删除我的数据库中的一行,我遇到了这个问题,我需要找到一行......和...或......和......

所以在普通的php中会是

DELETE * FROM connection_requests 
WHERE `user_id`=$user->id AND `selected_user_id`=$id OR 
`selected_user_id`=$user->id AND `user_id`=$id;

(第一个and属于where,第二个and属于or

现在我如何在laravel

中这样做

3 个答案:

答案 0 :(得分:2)

这可以尝试

  DB::table('connection_requests')
          ->where(['user_id'=>$user->id, 'selected_user_id'=>$id])
          ->orWhere(['user_id'=>$id, 'selected_user_id'=>$user->id])
          ->delete();

答案 1 :(得分:0)

你可以试试这个

DB::table('connection_requests')
    ->where(function ($query) use ($user->id, $id) {
        $query->where('user_id', '=', $user->id)
              ->where('selected_user_id', '=', $id);
    })
    ->orWhere(function ($query) use ($user->id, $id) {
            $query->where('selected_user_id', '=', $user->id)
                  ->where('user_id', '=', $id);
    })
    ->delete();

答案 2 :(得分:0)

我自己修理了所有人,谢谢你和我一起思考

 DB::table('connection_requests')
        ->where('user_id', $user->id)
        ->where('selected_user_id', $id)
        ->orWhere('selected_user_id', $user->id)
        ->orWhere('user_id', $id)
        ->delete();