Переменные хранимой процедуры MySQL из операторов SELECT

Я пытаюсь создать хранимую процедуру. Вот что у меня есть на данный момент (не работает):

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 — это созданная мной функция, которая отлично работает. Как видите, я пытаюсь взять идентификатор города из таблицы городов, а затем установить для cityLat и cityLng некоторые другие значения этой записи. Я явно делаю это неправильно, используя SELECT.

Возможно ли это? Кажется, так и должно быть. Любая помощь будет принята с благодарностью.

12
задан Matt Harrison 18 May 2012 в 09:07
поделиться