1. ホーム
  2. sql

[解決済み] Laravel 5 Eloquent where and or in Clauses(雄弁なwhereとorの節

2023-04-05 10:13:56

質問

複数のwhereおよび/またはclauseを持つテーブルから結果を取得しようとします。

私のSQLステートメントは、次のとおりです。

SELECT * FROM tbl
WHERE m__Id = 46
AND
t_Id = 2
AND
(Cab = 2 OR Cab = 4)

どのように私はLaravel Eloquentでこれを得ることができますか?

Laravelの私のコードは。

$BType = CabRes::where('m_Id', '=', '46')
                        ->where('t_Id', '=', '2')
                        ->where('Cab', '2')
                        ->orWhere('Cab', '=', '4')
                        ->get();

どのように解決するのですか?

使用方法 アドバンストホエアー :

CabRes::where('m__Id', 46)
      ->where('t_Id', 2)
      ->where(function($q) {
          $q->where('Cab', 2)
            ->orWhere('Cab', 4);
      })
      ->get();

あるいは、さらに良い方法として whereIn() :

CabRes::where('m__Id', 46)
      ->where('t_Id', 2)
      ->whereIn('Cab', $cabIds)
      ->get();