web-dev-qa-db-ja.com

Model-> where( 'id'、ARRAY)複数のwhere条件を実行できますか?

タイトルはそれをすべて言います。

私はこれを行うことができます:

DB::table('items')->where('something', 'value')->get()

しかし、次のような複数の値のwhere条件を確認したいのは:

DB::table('items')->where('something', 'array_of_value')->get()

これを行う簡単な方法はありますか?

29
Vudew

whereIn() があります:

$items = DB::table('items')->whereIn('id', [1, 2, 3])->get();
72
Limon Monte

いくつかのパラメーターで必要な場合:

$ids = [1,2,3,4];
$not_ids = [5,6,7,8];
DB::table('table')->whereIn('id', $ids)
                  ->whereNotIn('id', $not_ids)
                  ->where('status', 1)
                  ->get();
8
Gediminas

以下のソリューションのいずれかを使用できます。

$items = Item::whereIn('id', [1,2,..])->get();

または:

$items = DB::table('items')->whereIn('id',[1,2,..])->get();
3
behzad babaei

配列を2番目のパラメーターとして受け入れるwhereInを使用できます。

DB:table('table')
   ->whereIn('column', [value, value, value])
   ->get()

どこでも複数回チェーンできます。

DB:table('table')->where('column', 'operator', 'value')
    ->where('column', 'operator', 'value')
    ->where('column', 'operator', 'value')
    ->get();

これはAND演算子を使用します。 ORが必要な場合は、orWhereメソッドを使用できます。

高度なwhereステートメントの場合

DB::table('table')
    ->where('column', 'operator', 'value')
    ->orWhere(function($query)
    {
        $query->where('column', 'operator', 'value')
            ->where('column', 'operator', 'value');
    })
    ->get();
0
chanafdo