Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để sử dụng GIỮA và VÀ trong laravel

Nếu bạn chỉ muốn xây dựng truy vấn / lấy dữ liệu thuần túy mà không có bất kỳ logic nào xung quanh nó, bạn có thể chỉ cần sử dụng Trình tạo truy vấn:

$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();

Và chắc chắn rằng bạn có thể sử dụng cùng một cú pháp nếu bạn đang làm việc với Mô hình:

$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();

Một chút giải thích bổ sung liên quan đến câu hỏi của bạn về cách sử dụng AND hùng hồn:

AND được sử dụng theo mặc định nếu bạn sử dụng 2 hoặc nhiều hơn where() S. Vì vậy,

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

bằng

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

Đối với OR bạn có thể sử dụng orWhere() :

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

bằng

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

Và đôi khi bạn có thể cần một cái gì đó phức tạp hơn, ví dụ:

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

Trong Eloquent, đây sẽ là:

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. TẢI THÔNG TIN DỮ LIỆU với các biến

  2. Loại trừ các dòng kết quả có giá trị NULL trong bất kỳ trường nào?

  3. ER_NOT_SUPPORTED_AUTH_MODE - Máy chủ MySQL

  4. Chạy di chuyển với Rails trong vùng chứa Docker với nhiều bản sao vùng chứa

  5. Tìm khoảng cách giữa hai điểm trong MYSQL. (sử dụng Point Datatype)