$sql="
SELECT *,
sqrt(POWER(((lat-".$row['lat'].")*110349.7867154), 2) + POWER(((lng-".$row['lng'].")*64505.305504), 2)) as `distance`
FROM `cafe`
WHERE
sqrt(POWER(((lat-".$row['lat'].")*1110349.7867154), 2) + POWER(((lng-".$row['lng'].")*64505.305504), 2)) < 200
ORDER BY `distance` ASC
";
$distanceSq = $distance^2;
$row['latMin'] = $row['lat'] - 200/1110349.7867154;
$row['latMax'] = $row['lat'] + 200/1110349.7867154;
$row['lngMin'] = $row['lng'] - 200/64505.305504;
$row['lngMax'] = $row['lng'] + 200/64505.305504;
$sql="
SELECT *,
sqrt(POWER(((lat-".$row['lat'].")*110349.7867154), 2) + POWER(((lng-".$row['lng'].")*64505.305504), 2)) as `distance`
FROM `cafe`
WHERE
(lat >= ".$row['latMin']." AND lat <= ".$row['latMax'].")
AND (lng >= ".$row['lngMin']." AND lng <= ".$row['lngMax'].")
AND POWER(((lat-".$row['lat'].")*1110349), 2) + POWER(((lng-".$row['lng'].")*64505), 2) < ".$distanceSq."
ORDER BY `distance` ASC
";
Source: https://habr.com/ru/post/69334/