我有一个名为Region
id | name | lat | lng
我有一个我想搜索的区域ID列表,如
(48346, 48335, 48325, 48324)
对于上面的每个地区,我想搜索400公里范围内可以使用的区域(以下工作用于一个区域搜索,并将返回所选区域400公里范围内的区域列表):
// find region within 400km
SELECT id, (6371 *
ACOS(COS(RADIANS(lat)) *
COS(RADIANS(center_lat)) *
COS(RADIANS(lng) -
RADIANS(center_lng)) +
SIN(RADIANS(center_lat)) *
SIN(RADIANS(lat)))) AS distance
FROM
region
WHERE
active = 1
HAVING distance <= 400;
我的问题是,目前我正在通过区域列表(48346, 48335, 48325, 48324)
运行PHP循环,并且每个id调用查询以查找400km内的区域(循环之后,返回4个区域列表)
有没有办法使用一个SQL查询来查找所有区域IN (48346, 48335, 48325, 48324);
,并且每个区域找到列表中每个区域400公里内的所有区域