sql >> Database teknologi >  >> RDS >> Mysql

Konverter denne forespørgsel til veltalende

Din model kommer til at se nogenlunde sådan ud i Laravel 4. L3 er nok nogenlunde ens, men jeg har ringe eller ingen erfaring med det.

<?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);
    }
}

Husk, at du aldrig placerer kompliceret (eller nogen) databaselogik i controlleren, altid bag en visning.



  1. Indsættelse af data i Oracle-database ved hjælp af php

  2. Find og erstat en del af teksten i et felt ved hjælp af MySQL

  3. forespørgsel ekstremt langsom efter migrering til mysql 5.7

  4. Hvordan forbinder man en C# Windows mobile 6.5-app til en Postgres-database?