sql >> Database teknologi >  >> RDS >> Mysql

Forespørgselsbyggerens betingede parametre

Jeg tror, ​​du har brug for "og hvor"-tilstand her. Eller hvor betyder at matche enten den ene eller den anden eller begge regler. "Og hvor" ville kun fungere, hvis begge regler matcher.

Så jeg vil foreslå, at du prøver dette:

$users = User::with('skills')
->with('skills')
->with('positions');
if($skills)
{
    $users->whereHas('skills', function($thisquery) use ($skills)
    {
       $thisquery->whereIn('name', $skills);
    });
 }

if($positions)
{
    $users->whereHas('positions', function($thisquery) use ($positions)
    {
         $thisquery->whereIn('name', $positions);
    });
}
$users = $users->get();


  1. Inner join vs Where

  2. Opsamling af tæller fra en SQL-forespørgsel

  3. Problem med indsættelse fra python-script i mysql-database med innondb-motor

  4. Java2MySQL> Kommunikationsforbindelsesfejl på grund af underliggende undtagelse igen