sql >> Databáze >  >> RDS >> Mysql

Převeďte tento dotaz na výmluvný

Váš model bude v Laravelu 4 vypadat nějak takto. L3 je pravděpodobně dost podobný, ale nemám s tím žádné zkušenosti.

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

Pamatujte, že nikdy nevkládáte komplikovanou (nebo jakoukoli) databázovou logiku do řadiče, vždy za pohled.



  1. Získejte datový typ pole v příkazu select v ORACLE

  2. Správa souborů MDF na serveru SQL Server 2019

  3. Implementace automatického zálohování a obnovy databáze pomocí výchozích prostředků

  4. Obrázky v MySQL