php - 计算最近位置时出现语法错误
问题描述
enter code here
我想它很简单,但我肯定在这里遗漏了一些东西。我在这里想要实现的是使用当前位置计算最近的位置。在不添加计算部分的情况下,查询工作正常。
我收到一条错误消息,提示“语法错误,意外 'AS' (T_AS),期待 ',' 或 ')'”
任何帮助将不胜感激。
enter code here
$testjoin = doctors::where('location_id',$data['location_id'])
->where('medication_id',$data['medication_id'])
->where('specialization_id',$data['specialization_id'])
->where('facility_id',$data['facility_id'])
->where('distance','<=',20)->orderBy('distance','desc')->take('20')
->join('locations', 'doctors.location_id', '=', 'locations.id')
->join('medication_types', 'doctors.medication_id','=','medication_types.id')
->join('specializations', 'doctors.specialization_id','=','specializations.id')
->join('facility_types', 'doctors.facility_id','=','facility_types.id')
->select(
'doctors.id',
'doctors.location_id',
'doctors.first_name',
'doctors.contact',
'doctors.email',
'doctors.lat',
'doctors.lng',
'locations.location',
'medication_types.medication',
'specializations.specialization',
'facility_types.type',
DB::raw( 6371 * acos( cos( radians(15.538210) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(73.822974) ) + sin( radians(15.538210) ) *
sin( radians( lat ) ) ) AS distance )
)->get();
解决方案
我认为您不能在选择中进行计算。select() 只选择字段。请尝试更改计算
( 6371 * acos( cos( radians(15.538210) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(73.822974) ) + sin( radians(15.538210) ) *
sin( radians( lat ) ) ) ) AS distance
经过
DB:raw( 6371 * acos( cos( radians(15.538210) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(73.822974) ) + sin( radians(15.538210) ) *
sin( radians( lat ) ) ) AS distance )
您可以使用 DB:raw 在您选择的字段中准备一个新列。
并且请检查“from”、“have”、“limit”、“orderby”所有这些都可以作为医生模型的方法。例如。
->where('distance','<=',20)->orderBy('distance','desc')->take('20')->get()
请试试这个,让我知道它是如何工作的:)
推荐阅读
- node.js - CSRF 令牌在我的反应应用程序中不起作用
- c++ - 我的解决方案比给定的示例解决方案慢多少?
- c# - 在 Asp.Net Core MVC 视图中找不到类型或命名空间
- python - python中的密码保护或加密sqlite db文件
- python - 如何根据列值和不同的日期时间索引计算熊猫数据框中的差异?
- blazor - 是否可以在 Blazor 中为父组件和子组件指定两个不同的类型参数值?
- azure - 为 Azure SQL 数据库创建发布配置文件
- python - 如何使用python在字符串中的单词后查找值?
- java - RestTemplate 和 UriComponentsBuilder 访问 API
- sql-server - 检查存储过程中的权限