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

Jak svázat parametry s nezpracovaným dotazem DB v Laravelu, který se používá na modelu?

OK, po nějakém experimentování, tady je řešení, se kterým jsem přišel:

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

V podstatě setBindings musí být voláno na dotaz. Kéž by to bylo zdokumentováno!



  1. Jak extrahovat podřetězec z řetězce v T-SQL

  2. SQL Server rekurzivní samo připojení

  3. Jak ALTER více sloupců najednou v SQL Server

  4. Standardní číselné formátovací řetězce Podporované FORMAT() v SQL Server