检查laravel 5中单个列中的多个值

时间:2018-03-08 11:17:50

标签: mysql database laravel

所以我不确定我是否问过这个问题。我是laravel的新手,现在我正在构建一个应用程序,如果满足某些条件,我需要为用户获取数据。这就是我想要实现的目标:

从数据库中选择userid = $ user和userstatus = active或inactive。或待定。 因此,将返回具有用户标识($ user)和状态(活动,非活动和挂起)的所有行。 我试过了:

  $users = DB::table('users')
    ->where('status', '=', 'active')
    ->orwhere('status', '=', 'inactive')
    ->orwhere('status', '=', 'pending')
    ->get();

这返回了该特定表中的所有数据。什么是最好的方法来解决这个问题。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$users = DB::table('users')
    ->where('userid', $userid)
    ->whereIn('status',['active', 'inactive','pending'])
    ->get();

答案 1 :(得分:1)

您至少有两个选项可以使用,包括两个选项,以便在这种情况下使用一个选项,一个用于一般用途。使用创建新块的函数,就像在查询中添加括号一样

$users = DB::table('users')
  ->where('id', $user)
  ->where(function($query) {
  $query->where('status', 'active')
    ->orWhere('status', 'inactive')
    ->orWhere('status', 'pending');
})->get();

$users = DB:table('users')->where('id', $user)->whereIn('status', ['active', 'inactive', 'pending')->get();