我正在尝试查询一个小表以查找表中距输入坐标点1公里以内的所有记录。表格中的每个记录都有一个“ Lat”和“ Long”列以及相应的点。我的查询是
var sql = `SELECT * FROM GeoTest WHERE st_distance_sphere(POINT(-100,35),POINT(Long,Lat)) <= 1000`
error'您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本以使用正确的语法 \'Long,Lat)附近<= 1000 \'
表中的数据
id Lat Long
1 30.5092060000000000 -97.6046760000000000
2 31.1310390000000000 -97.7805610000000000
我不知道如何使用所选行中返回的纬度和经度来比较距离,然后仅在1Km之内返回记录。如何将记录中的经度和纬度字段替换为st_distance_sphere函数?我确定我在这里遗漏了一些非常简单的东西。感谢您帮助这个SQL新手!
答案 0 :(得分:1)
在5.7和8.0上使用此功能
Select st_distance_sphere(POINT(-100,35),
POINT ( `Long` , `Lat`) ) From GeoTest;