【发布时间】:2019-03-03 00:30:23
【问题描述】:
我的数据库:
|----|------|------|
| id | lat | long |
|----|------|------|
当我使用这段代码时:
public function near($lat ,$lng)
{
$cities = map::select(DB::raw('*, ( 6367 * acos( cos( radians('.$lat.') ) * cos( radians( lat ) ) * cos( radians( long ) - radians('.$lng.') ) + sin( radians('.$lat.') ) * sin( radians( lat ) ) ) ) AS distance'))
->where('distance', '<', 25)
->orderBy('distance')
->get();
return response($cities);
}
它给了我错误:
SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行附近使用的正确语法,以在 'long ) - radians(5) ) + sin( radians(28) ) * sin( radians( lat ) ) ) ) AS distan' 附近(SQL: select *, ( 6367 * acos( cos( 弧度(28) ) * cos( 弧度( lat ) ) * cos( 弧度( long ) - 弧度(5) ) + sin( 弧度(28) ) * sin(弧度( lat ) ) ) ) AS 距离
maps其中distancedistance asc)
【问题讨论】:
-
显示你的模型图
标签: laravel