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

Преобразувайте тази заявка в красноречива

Вашият модел ще изглежда нещо подобно в Laravel 4. L3 вероятно е доста подобен, но имам малък или никакъв опит с това.

<?php 

class Restaurant extends Illuminate\Database\Eloquent\Model
{
    protected $table = 'restaurants';

    public function getSomeShit()
    {
        return $this
            ->select('*')
            ->select(DB::raw('( 3959 * acos( cos( radians(21.420639) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(-157.805745) ) + sin( radians(21.420639) ) * sin( radians( lat ) ) ) ) AS distance'))
            ->groupBy('id')
            ->having('distance', '<', 25)
            ->having('ratingsTotal', '>', 0)
            ->orderBy('distance')
            ->limit(5);
    }
}

Не забравяйте, че никога не поставяте сложна (или каквато и да е) логика на базата данни в контролера, винаги зад изглед.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP дата, показваща '1970-01-01 ' след преобразуване

  2. Изберете потребители от една таблица само ако не и от друга

  3. Верижно orX в Doctrine2 конструктор на заявки

  4. Как да вмъкнете DECIMAL в MySQL база данни

  5. Улавяне на изключение за дублиран запис