ストアド プロシージャを作成しようとしています。これが私がこれまでに持っているものです(機能していません):
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を使用することで、明らかにこれを間違っています。
これは可能ですか?そうあるべきだと思われます。どんな助けでも大歓迎です。