为什么此距离查询不返回任何结果



我知道DistanceInMiles函数有效,我测试了它。但是为什么查询不返回任何结果。我是 sql 的新手,所以我真的不知道如何进行复杂的查询,但我不知道为什么这不起作用。数据库中的所有项都满足查询的要求。但它返回 0 行返回。

DELIMITER $$
DROP FUNCTION IF EXISTS DistanceInMiles$$
CREATE FUNCTION DistanceInMiles(src_lat decimal(10, 8), src_lng decimal(11, 8), dest_lat decimal(10, 8), dest_lng decimal(11, 8)) 
RETURNS decimal(15, 8) DETERMINISTIC
BEGIN
RETURN CAST((3959 * acos(cos(radians(src_lat)) * cos(radians(dest_lat)) *
    cos(radians(dest_lng) - radians(src_lng)) + sin(radians(src_lat)) *
    sin(radians(dest_lat)))) as decimal(15, 8));
END $$
DELIMITER ;
SET @dist = 2500;
SET @srctLat = 41.024449;
SET @srcLng = -72.481628;
SELECT z.lat, z.lng, z.name, z.restaurant_id,
DistanceInMiles(@srcLat, @srcLng, z.lat, z.lng) as distance
from restaurants z
HAVING distance < @dist
ORDER BY distance
LIMIT 10

你打错了字。将SET @srctLat = 41.024449;更改为SET @srcLat = 41.024449;

最新更新