1、根据文章一:
========
select ROUND(6378.1382ASIN(SQRT(POW(SIN(($latitudePI()/180-latitudePI()/180)/2),2) +
COS($latitudePI()/180)COS(latitudePI()/180)
POW(SIN(($longitudePI()/180 - longitudePI()/180)/2),2)
)
)*1000)
AS distance FROM shop having distance <= 5000 order by distance asc
说明:6378.138这个是地球的直径,单位千米.latitude是用户位置的纬度,latitude是用户位置的纬度,longitude是用户位置经度.latitude 为商户的纬度字段,longitude为商户的经度字段。上面一段sql计算得出根据用户经纬度计算与商户的距离。
1.1、ROUND函数
ROUND 函数用于把数值字段舍入为指定的小数位数。
https://www.w3school.com.cn/sql/sql_func_round.asp
1.2、ASIN
ASIN()函数返回X的反正弦,X的值必须在-1到1的范围内,否则返回NULL。
https://www.yiibai.com/sql/sql-asin-function.html
1.3、SQRT
SQL SQRT函数用来找出任何数的平方根。