查找数据库中的哪些圆圈区域包含地图上的特定点

find which circle areas in db contain specific point on map

我在 db 中存储了一个由圆心 (lat,lon) 和半径表示的圆区域。字段:id、lat、lon、point、radius 现在我在地图上有一些其他点。

我的目标是找到这个点存在于哪些区域。 已经具有搜索指定区域中所有点的功能,但现在我需要一些不同的行为并找到包含指定点的所有区域。

如上述那样工作的查询看起来如何?

我研究了一下,发现在mysql 5.7中有更多的空间功能。升级附带的 SST_Distance_Sphere 对我有用!所以决定在我的服务器上进行升级并使用这个 SQL:

SELECT ST_Distance_Sphere(POINT(lng, lat), POINT(19.93875777348876  , 50.061379843744234)) as Radius 
FROM locations 
WHERE ST_Distance_Sphere(POINT(lng, lat), POINT(19.93875777348876   , 50.061379843744234)) <= radius