본문 바로가기
MySql

MySQL 루프 내의 여러 where 절을 laravel

by 베이스 공부 2020. 12. 20.
반응형

쿼리에서 25 세이고 150-170cm 또는 190-200cm 사이 인 사용자의 모든 레코드를 선택하기를 원합니다.

이 쿼리를 아래에 기록했습니다. 그러나 문제는 25 세 또는 190-200cm 인 25 세인 150-170 또는 25 세인 190-200cm 인 사람들이 계속 증가한다는 것입니다. 이 문제를 어떻게 해결할 수 있습니까? 감사

 $heightarray=array(array(150,170),array(190,200));
 $user->where('age',25);

   for($i=0;$i<count($heightarray);i++){
 if($i==0){
   $user->whereBetween('height',$heightarray[$i])
}else{
   $user->orWhereBetween('height',$heightarray[$i])
 }
 }
      $user->get();


laravel 문서에서

 DB::table('users')
        ->where('name', '=', 'John')
        ->orWhere(function($query)
        {
            $query->where('votes', '>', 100)
                  ->where('title', '<>', 'Admin');
        })
        ->get();

 

해결 방법

 


$heightarray = array(array(150,170),array(190,200));

DB::table('users')
  ->where('name', '=', 'John')
  ->orWhere(function($query) use ($heightarray){
    //...
  })
  ->get();

 

참조 페이지 https://stackoverflow.com/questions/19485893

 

 

반응형

댓글