我正在尝试创建一个存储过程。这是我到目前为止的代码(不起作用):
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是我创建的一个很好用的函数。如您所见,我正试图从cities表中获取城市的id,然后将cityLat和cityLng设置为该记录的其他值。但是我在这里使用SELECT肯定是错误的。
这是否可能呢?看起来应该是可以的。非常感谢任何帮助。