[laravel] Laravel Eloquent“WHERE NOT IN”

에 검색어를 작성하는 데 문제가 있습니다 laravel eloquent ORM.

내 질문은

SELECT book_name,dt_of_pub,pub_lang,no_page,book_price
FROM book_mast
WHERE book_price NOT IN (100,200);

이제이 쿼리를 laravel 웅변으로 변환하고 싶습니다.



답변

쿼리 작성기 :

DB::table(..)->select(..)->whereNotIn('book_price', [100,200])->get();

웅변 :

SomeModel::select(..)->whereNotIn('book_price', [100,200])->get();


답변

다음과 같은 방법으로 WhereNotIn 을 사용할 수도 있습니다.

ModelName::whereNotIn('book_price', [100,200])->get(['field_name1','field_name2']);

특정 필드를 가진 레코드 콜렉션을 리턴 합니다.


답변

->toArray()결과에 메소드 를 추가 할 때까지 하위 쿼리를 만드는 데 문제 가 있었으며 솔루션을 찾는 데 좋은 시간을 보냈으므로 둘 이상 도움이되기를 바랍니다.

DB::table('user')
  ->select('id','name')
  ->whereNotIn('id', DB::table('curses')->select('id_user')->where('id_user', '=', $id)->get()->toArray())
  ->get();


답변

whereNotIn을 구현하는 동적 인 방법 :

 $users = User::where('status',0)->get();
    foreach ($users as $user) {
                $data[] = $user->id;
            }
    $available = User::orderBy('name', 'DEC')->whereNotIn('id', $data)->get();


답변

whereNotIn 메소드는 주어진 열의 값이 주어진 배열에 포함되어 있지 않은지 확인합니다 :

$users = DB::table('users')
                    ->whereNotIn('id', [1, 2, 3])
                    ->get();


답변

WhereNotIn다음과 같은 방법으로 사용할 수 있습니다 .

$category=DB::table('category')
          ->whereNotIn('category_id',[14 ,15])
          ->get();`enter code here`


답변

이 예제를 사용하여 Where NOT IN 을 동적으로 호출 할 수 있습니다

$ user = User :: where ( 'company_id', '=', 1)-> select ( 'id)-> get ()-> toArray ();

$ otherCompany = 사용자 :: whereNotIn ( 'id', $ user)-> get ();