sql >> Databasteknik >  >> RDS >> Mysql

Hur binder man parametrar till en rå DB-fråga i Laravel som används på en modell?

OK, efter lite experimenterande, här är lösningen som jag kom fram till:

$property = 
    Property::select(
        DB::raw("title, lat, lng, ( 
            3959 * acos( 
                cos( radians(  ?  ) ) *
                cos( radians( lat ) ) * 
                cos( radians( lng ) - radians(?) ) + 
                sin( radians(  ?  ) ) *
                sin( radians( lat ) ) 
            )
       ) AS distance")
    )
    ->having("distance", "<", "?")
    ->orderBy("distance")
    ->take(20)
    ->setBindings([$lat, $lng, $lat,  $radius])
    ->get();

I grund och botten, setBindings måste anropas på frågan. Önskar att detta var dokumenterat!



  1. Topp 10 bästa praxis i MySQL

  2. Trimma efterföljande utrymmen med PostgreSQL

  3. Hur man byter namn på en JSON-nyckel i SQL Server (T-SQL)

  4. Hur SUBSTRING() fungerar i MariaDB