在進行web開發中,經常需要查詢距離一個特定地點附近的地址。這時候,MySQL是一種非常有效的查詢工具。以下是一些實用的MySQL查詢附近地址的技巧。
SELECT *, SQRT( POW(69.1 * (latitude - $lat), 2) + POW(69.1 * ($lng - longitude) * COS(latitude / 57.3), 2)) AS distance FROM markers HAVING distance< 25 ORDER BY distance LIMIT 0, 20;
以上MySQL查詢語句可以根據經緯度獲取距離指定坐標附近25英里內的地址,并按照距離排序。
那么,在代碼中,可以這樣實現:
$lat = $_GET['lat']; $lng = $_GET['lng']; $query = "SELECT *, SQRT( POW(69.1 * (latitude - $lat), 2) + POW(69.1 * ($lng - longitude) * COS(latitude / 57.3), 2)) AS distance FROM markers HAVING distance< 25 ORDER BY distance LIMIT 0, 20"; $result = mysqli_query($conn, $query); if (!$result) { die("Failed to query: " . mysqli_error($conn)); } while ($row = mysqli_fetch_assoc($result)) { echo "" . $row['address'] . "
"; }
以上代碼會從markers數據庫表中查詢符合條件的地址,并按照距離排序。如果查詢失敗,代碼會輸出失敗原因。最后,代碼會將符合條件的地址逐一輸出。