Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам BETWEEN и AND в laravel

Ако просто искате да създадете заявката / да получите чисти данни без никаква логика около това, можете просто да използвате Query Builder:

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

И със сигурност можете да използвате същия синтаксис, ако работите с модел:

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

Малко допълнително обяснение относно въпроса ви как да използвате AND в красноречив:

AND се използва по подразбиране, ако използвате 2 или повече where() с. И така

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

е равно на

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

За OR можете да използвате orWhere() :

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

което е равно на

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

И понякога може да се нуждаете от нещо по-сложно, например:

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

В Eloquent това би било:

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. MySQL изберете къде е равно на множество стойности

  2. MySQL Изберете:WHERE (време сега) =МЕЖДУ стойност на таблица И стойност на таблица

  3. Производителност на MySQL:MyISAM срещу InnoDB

  4. Сума на припокриващите се диапазони от време и време в MySQL

  5. Извличане на информация от базата данни