특정 지점 주위의 거리를 찾고 있습니다.laravel에 대한 sql 쿼리의 구문 오류
위와 같은 항목은 내 DB에 위도와 경도가 있습니다.
지정된 반경 내에서 모든 결과를 얻고 싶습니다.
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long) - radians(?)) + sin(radians(?)) * ' at line 4 (SQL: select *, (6371 * acos(cos(radians(51,3)) * cos(radians(lat)) * cos(radians(long) - radians(4,3)) + sin(radians(51,3)) * sin(radians(lat)) )) AS distance from
hamsters
havingdistance
< 5 order bydistance
asc)
누구나이 문제를 해결하는 방법 :
$lat = '51,3';
$long = '4,3';
$radius = '5';
$hamsters = Hamster::select(
DB::raw("*,
(6371 * acos(cos(radians(?)) *
cos(radians(lat))
* cos(radians(long) - radians(?)
) + sin(radians(?)) *
sin(radians(lat)))
) AS distance"))
->having("distance", "<", "?")
->orderBy("distance")
->setBindings([$lat, $long, $lat, $radius])
->get();
이 지금은 나에게 오류를 제공합니다
이 내가 그것을 얻을 어떻게?
왜'-> get()'대신'-> toSql()'을 사용하지 않고 echo하고 생성 된 쿼리를 봅니다. – Latheesan