MySQL中的距离函数使用实例(mysql距离函数)
MySQL中的距离函数是用来计算两个坐标(经纬度)之间的距离。它可以用来实现基于地理位置的查询,如搜索附近的餐厅、购物中心等。
MySQL中可以通过 ST_distance() 函数来计算距离,它接受四个参数:第一个参数是起始坐标,第二个参数是结束坐标,第三个参数是 Coordinate_system_id ,第四个参数是 Output_distance_uom_id 。
比如,我们想计算以下两个坐标之间的距离(经度,纬度):
$coord1 = (43.0667, -89.4000)
$coord2 = (43.1167, -89.4000)
它的函数调用如下:
SELECT ST_distance(GeomFromText(‘POINT(43.0667 -89.4000)’), GeomFromText(‘POINT(43.1167 -89.4000)’), 4326 , 1111)
第一个参数 GeomFromText(‘POINT(43.0667 -89.4000)’ ) 是表示 coord1 坐标的参数,而第二个参数 GeomFromText(‘POINT(43.1167 -89.4000)’) 是表示 coord2 坐标的参数。4326 是 Coordinate_system_id, 1111 是 Output_distance_uom_id 。
结果是: 0.540695461046057
距离函数也可以用来找出离某个给定坐标最近的位置:
SELECT
p.*,
ST_distance(GeomFromText(‘POINT(43.0667 -89.4000)’),position_coord)
AS distance
FROM positions p
ORDER BY distance
LIMIT 1
此查询会从 positions 表中查询出和 coord1 最近的位置,并计算出两个坐标的距离。
距离函数非常强大,它可以用来实现按照地理位置来查询数据,我们可以利用它来查询附近的餐厅、购物中心等。