1. select * from (
  2. SELECT *,
  3. (
  4. 6371 * acos (
  5. cos ( radians(#{lat}) )
  6. * cos( radians(lat) )
  7. * cos( radians(lng) - radians(#{lng}) )
  8. + sin ( radians(#{lat}) )
  9. * sin( radians(lat) )
  10. )
  11. ) AS distance
  12. FROM sys_branch where level = 2 and lat is not null and lng is not null
  13. )tmp where tmp.distance < 1

MySQL获取经纬度

image.png

注意:在不同版本中,可能会出现方法被弃用的情况,下面分别从两个版本说明

8.0以下

  1. SELECT
  2. y(lng_lat) lng,x(lng_lat)
  3. FROM
  4. `address`

8.0及以上

  1. SELECT
  2. ST_Astext(lng_lat),
  3. ST_Y(lng_lat) 经度,
  4. ST_X(lng_lat) 纬度
  5. FROM
  6. address