Saklı yordam oluşturmaya çalışıyorum. Ben bugüne kadar (çalışmıyor) sahip budur:MySQL SELECT deyimlerinin saklı yordam değişkenleri
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 çalışıyor benim yarattığım bir işlevdir. Görebildiğiniz gibi, şehir masasından bir şehrin kimliğini almaya çalışıyorum ve daha sonra cityLat ve cityLng değerini bu kaydın diğer değerlerine ayarlıyorum. Burada açıkça SELECTs kullanarak yanlış yapıyorum.
Bu mümkün mü? Olması gerektiği gibi görünüyor. Her türlü yardım büyük ölçüde takdir edilecektir. Eğer MySQL'ın SELECT ... INTO
sözdizimi kullanabilirsiniz Alternatif
SET cityLat = (SELECT cities.lat FROM cities WHERE cities.id = cityID);
: