我有一个包含本地商家坐标的表格(纬度,经度),我需要获取在给定半径内的所有商家,为此我使用一个查询,在查询中动态计算距离。
select b.* from `businesses` as b
where
(
1.609344 * 3956 * 2 * ASIN(
SQRT(
POWER(SIN((lat - b.lat) * pi()/180 / 2), 2) +
COS(lat * pi()/180) * COS(b.lat * pi()/180) *
POWER(SIN((lng -b.lng) * pi()/180 /-2), 2)
)
)
) <= radius
现在我需要在以下情况下扩大半径,即该地区的企业数量太少, 例如,如果在给定的半径范围内只有10家企业,则需要动态扩大半径直到获得50家企业。