Ich erhalte diesen Fehler, wenn ich versuche, eine gespeicherte Prozedur auszuführen.Gespeicherte Prozeduren Fehler unbekannte Spalte mySQL
mysql> call get_nearby;
ERROR 1054 (42S22): Unknown column 'longRadius' in 'where clause'
Hier ist die SQL, um die gespeicherte Prozedur zu erstellen:
CREATE PROCEDURE get_nearby() BEGIN SET @lat = 10; set @long = 12;
SELECT id,
@long - radius/abs(cos(radians(@lat)) * 69) as longRadius,
(radius/69) as latRadius
FROM area
WHERE longitude between @long + longRadius and @long - longRadius
AND latitude between @lat + latRadius and @long - latRadius;
END
Ich habe keine Ahnung, warum der angegebene Spaltenname nicht erkannt wird. Im Moment habe ich @lat und @long am Anfang eingestellt, um das Testen zu vereinfachen.
Jede Hilfe würde sehr geschätzt werden.
Sie können keine Spaltenaliasnamen in der where-Klausel verwenden. Siehe http://stackoverflow.com/a/942592/4843530. – AgapwIesu
Tipp von heute: Verwenden Sie eine abgeleitete Tabelle! – jarlh