我正在尝试创建一个存储过程。这是我到目前为止所拥有的(不工作):
DELIMITER |
CREATE PROCEDURE getNearestCities(IN cityID INT)
BEGIN
DECLARE cityLat FLOAT;
DECLARE cityLng FLOAT;
SET cityLat = SELECT cities.lat FROM cities WHERE cities.id = cityID;
SET cityLng = SELECT cities.lng FROM cities WHERE cities.id = cityID;
SELECT *, HAVERSINE(cityLat,cityLng, cities.lat, cities.lng) AS dist FROM cities ORDER BY dist LIMIT 10;
END |
HAVERSINE 是我创建的一个可以正常工作的函数。如您所见,我正在尝试从城市表中获取城市的 id,然后将 cityLat 和 cityLng 设置为该记录的其他一些值。我显然在这里使用 SELECT 做错了。
这甚至可能吗。似乎应该如此。任何帮助将不胜感激。