使用yii框架运行查询时,出现以下错误。我发现自己无法解决此问题,如果您对此有错,可以帮助您恢复并解决它。
CDbCommand无法执行以下SQL语句:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参见表11。检查与您的MySQL服务器版本相对应的手册以获取在'),2)+ POW(69.1 *(-items.longitude)* COS(items.latitude / 57.3),2)),2)下使用的正确语法d'在第1行。执行的SQL语句为:SELECT items。*,round(SQRT(POW(69.1 *(items.latitude-),2)+ POW(69.1 *(-items.longitude))* COS(items。纬度/ 57.3),2)),2)作为距离,u.id作为userId,u.first_name,u.last_name 来自
10yoyo_shared_item
items
在项目上加入10yoyo_user
u
的用户。user_id= u.id WHERE items.home_page_display_status =“ Y” AND items.status =“ active” AND items.category_id =“ 62” AND u.status =“ active”距离<= 10000 ORDER BYshared_time
DESC LIMIT 4
执行的语句为:
SELECT items.*,round(SQRT( POW(69.1 * (items.latitude - ), 2) + POW(69.1 * (- items.longitude) * COS(items.latitude / 57.3), 2)),2) as distance,u.id as userId,u.first_name,u.last_name
FROM `10yoyo_shared_item` `items`
JOIN `10yoyo_user` `u` ON items.user_id=u.id
WHERE items.home_page_display_status="Y" AND items.status="active" AND items.category_id = "62" AND u.status="active" HAVING distance <=10000
ORDER BY `shared_time` DESC LIMIT 4
谢谢, 索拉布
答案 0 :(得分:0)
最后,我通过将sqrt函数替换为以下代码来解决了我的错误:
DEGREES(ACOS(COS(RADIANS(items.latitude))
* COS(RADIANS("'.$latitude.'"))
* COS(RADIANS(items.longitude - "'.$longitude.'"))
+ SIN(RADIANS(items.latitude))
* SIN(RADIANS("'.$latitude.'")))) AS distance
感谢和问候, 索拉布