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

Jak uzyskać wyniki z zapytania, jeśli wybrana data jest pomiędzy dwiema datami?

User::whereHas('availabilities', function ($q) use ($dt) {
    $q->where('unavailable_start_date', '<=', $dt)
      ->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();

Więc w pewien sposób to odwracamy. Ustawiamy zapytanie wewnątrz, gdzie musi znaleźć dostępności, niedostępności, które znajdują się w tym zakresie. Więc pytamy o wszystkie niedostępne rekordy (w pewnym sensie). Następnie chwytamy tylko użytkowników, którzy nie mają relacji spełniających te kryteria, używając innych argumentów do whereHas ( '=', 0 ).

Tak więc użytkownicy, którzy mają tę relację i mieszczą się w tym przedziale czasowym, nie są zwracani, bez względu na to, ile rekordów dostępności mają. Jeśli którykolwiek z nich się zakwalifikuje, nie przejdzie przez filtr.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Partycjonowanie MySQL:Wzrost wydajności Dla wielu partycjonowanych tabel. Czemu?

  2. za pomocą mysqli, aby zapobiec wstrzykiwaniu sql, jak ustawić NULL lub CURRENT_DATE?

  3. Wybierz dane z maksymalną kolejnością dat według innego pola

  4. PHP wysyła e-mail dla każdego użytkownika

  5. Ile cyfr znaczących powinienem przechowywać w swojej bazie danych dla współrzędnych GPS?