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

Jak używać BETWEEN i AND w laravel?

Jeśli chcesz po prostu zbudować zapytanie / uzyskać czyste dane bez żadnej logiki, możesz po prostu użyć Konstruktora zapytań:

$results = DB::table('search_users')
           ->where('first_name', $firstname)
           ->where('last_name', $last_name)
           ->where('country', $country) //and so on
           ->whereBetween('loc_lng', array(-0.24272918701172, -0.24272918701172))
           ->whereBetween('loc_lat', array(51.47026338272, 51.47026338272))
           ->get();

I na pewno możesz użyć tej samej składni, jeśli pracujesz z modelem:

$users = User::where('key1', $value1)
             ->where('key2', $value2)
             ->whereBetween('loc_lng', array(-0.24272918701172, -0.24272918701172))
             ->whereBetween('loc_lat', array(51.47026338272, 51.47026338272))
             ->get();

Niewielkie dodatkowe wyjaśnienie dotyczące Twojego pytania, jak używać AND wymownie:

AND jest używany domyślnie, jeśli używasz 2 lub więcej where() s. Więc

DB::table('search_users')->where('first_name', $firstname)
                         ->where('last_name', $last_name)

równa się

SELECT * FROM search_users  WHERE first_name = ? AND last_name = ?

Dla OR możesz użyć orWhere() :

DB::table('search_users')->where('first_name', $firstname)
                         ->orWhere('last_name', $othername)

co równa się

SELECT * FROM search_users  WHERE first_name = ? OR first_name = ?

A czasami możesz potrzebować czegoś bardziej skomplikowanego, na przykład:

SELECT * FROM search_users  
WHERE first_name = ? 
  AND (last_name = ? OR last_name = ?)
  AND age > 27

W Eloquent byłoby to:

DB::table('search_users')
      ->where('first_name', $firstname)
      ->where(function($query) {
          $query->where('last_name', $lastName1);
          $query->orWhere('last_name', $lastName2);
      })
      ->where('age', '>', 27)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć wartości z MySQL SELECT

  2. Czy koncepcyjnie słuszne jest wykonanie SELECT MAX(id) itp. w celu znalezienia ostatniego wstawionego wiersza?

  3. pymysql fetchall() wyniki jako słownik?

  4. ChNP Przygotowane oświadczenie Wewnątrz klasy

  5. Zwróć zarówno wynik zapytania, jak i liczbę wierszy