我有一個基於Haversine算法獲取地點的查詢。MySQL查詢只返回一個結果
SELECT
id, description, name,
lat, `long`,
(3959 * acos(cos(radians($lat)) * cos(radians(lat)) * cos(radians(`long`) - radians($long)) + sin(radians($lat)) * sin(radians(lat)))) AS distance
FROM
places
HAVING
distance < 10
ORDER BY
distance
LIMIT 0, 20;
然後我回聲出來以JSON陣列是這樣的:
$location = mysql_fetch_assoc($getlocations);
return print_r(json_encode($location));
但是,它只返回一行時應該有至少兩個。任何人都知道爲什麼它會這樣做?謝謝!
爲什麼你使用HAVING而不是WHERE和沒有GROUP BY。這個查詢是否工作? – niktrs
你是否在使用mysql_fetch_assoc而不是 – Gowri
@niktrs是的,除了我提到的錯誤之外,它的工作是完美無缺的。 – iamandrus