下面的查询当前在一个循环中(在 PHP 中),该循环从 3 个不同的数组中获取纬度、经度和 id 输入。对于数组中的每个位置/键,使用下面的查询从表中选择最近的地理位置。
由于数组的大小通常在 500 左右,因此需要找到最近的地理位置的 500 组输入需要一些时间。
我的问题:有没有办法一次使用来自 php 的输入数组来使用一个查询,并为每个数组键选择一组所有最近的地理位置?
$sql="SELECT
id, d, tolon, tolat, du,
( 3959 * acos( cos( radians($lat1) )
* cos( radians( travel.tolat ) )
* cos( radians( travel.tolon) - radians($lon1) )
+ sin( radians($lat1) )
* sin( radians( travel.tolat ) ) ) ) AS distance
FROM travel
WHERE userid = $id AND tolon > $lonlow AND tolon < $lonhigh AND tolat > $latlow AND tolat < $lathigh
having distance < $maxdistance ORDER BY distance
";