0
我试图显示距离为我的搜索结果添加距离查询结果
代码和查询
$query = DB::select(DB::raw('SELECT id, (3959 * acos(cos(radians(' . $lat . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $lng . ')) + sin(radians(' . $lat .')) * sin(radians(latitude)))) AS distance FROM listings HAVING distance < ' . $distance . ' ORDER BY distance'));
foreach($query as $q)
{
array_push($ids, $q->id);
}
$placeholders = implode(',',array_fill(0, count($ids), '?'));
$listings = Listing::whereIn('id', $ids)->orderByRaw("field(id,{$placeholders})", $ids)->paginate(10);
$查询包含距离。
如何在列表结果中添加距离?
$房源=上市::选择([ \t \t \t “*”, \t \t \t“(3959个* ACOS(COS(弧度('。$ lat。'))* cos(弧度(纬度))* cos(弧度(经度) - 弧度('。$ lng。'))+ sin(弧度('。$ lat。'))* sin(radians(latitude))))AS distance“ \t \t \t] - > having('distance','<',$ distance) - > orderBy('distan CE“) - >获得(); 我收到错误 –
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法错误;检查与您的MariaDB服务器版本相对应的手册,以找到正确的语法,以便在'距离'''''''''''''''距离'<?在第1行用'distance' asc'命令(SQL:select *,'('as'from'listings'''distance' <5 order by'distance' asc) –
指定带星号“列表的表名”。* “ –