12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
建站问答 时间:2024-11-30 19:56:39
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
在MySQL中,查询圆形内的数据可以使用以下方法:1. 使用经纬度计算距离的方式:SELECT*FROMtable_nameWHERE ACOS(SIN(radians(lat)) SIN(radians(target_lat)) + COS
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
在MySQL中,查询圆形内的数据可以使用以下方法:
1. 使用经纬度计算距离的方式:
SELECT*FROMtable_nameWHEREACOS(SIN(radians(lat)) SIN(radians(target_lat)) + COS(radians(lat)) COS(radians(target_lat))
COS(radians(target_lng) - radians(lng))) 6371 <= radius;
其中,table_name
是你的表名,lat
和lng
分别是存储纬度和经度的字段名,target_lat
和target_lng
是目标圆心的纬度和经度,radius
是查询的半径(单位为千米)。
2. 使用地理空间索引的方式:
首先,确保表中的经纬度字段创建了地理空间索引。例如:
ALTER TABLE table_name ADD COLUMN location POINT;UPDATE table_name SET location = POINT(lng, lat);CREATE SPATIAL INDEX idx_location ON table_name(location);
然后,使用以下查询语句:
SELECT *FROM table_nameWHERE ST_Distance_Sphere(location, POINT(target_lng, target_lat)) <= radius * 1000;
其中,table_name
是你的表名,location
是存储经纬度的字段名,target_lat
和target_lng
是目标圆心的纬度和经度,radius
是查询的半径(单位为千米)。
注意:第二种方法需要MySQL版本5.7以上,且启用了地理空间索引功能。
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19