Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Parametry warunkowe konstruktora zapytań

Myślę, że potrzebujesz tutaj warunku "i gdzie". Albo gdzie oznacza dopasowanie jednej lub drugiej lub obu zasad. „I gdzie” działałoby tylko wtedy, gdyby obie reguły były zgodne.

Proponuję więc spróbować tego:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje konwencja nazewnictwa dla MySQL?

  2. php / SQL - wypisz wiele słów 4 razy pomiędzy 4 nazwami z wieloma warunkami

  3. MySQL:zaznaczanie wielu pól w wielu zmiennych w procedurze składowanej

  4. Policz instancje w tabeli 1 ORAZ link do tabeli 2

  5. Połącz jako podzapytanie MySQL