MySQL St_distance_Sphere函数

时间:2019-08-27 22:33:16

标签: mysql sql

我正在尝试查询一个小表以查找表中距输入坐标点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新手!

1 个答案:

答案 0 :(得分:1)

在5.7和8.0上使用此功能

   Select st_distance_sphere(POINT(-100,35),
   POINT ( `Long` , `Lat`) ) From GeoTest;