私は与えられたlatとlngとの距離を計算するクエリとPOINT
を持っています。MySQL関数が構文エラーをスローする
DELIMITER $$
CREATE FUNCTION CalculateDistance(geobreite double, geolaenge double, umkreis int) RETURNS INT READS SQL DATA
BEGIN
SET @ibk_laenge = geobreite;
SET @ibk_breite = geolaenge;
SET @umkreis = umkreis;
SET @breite_nord = @ibk_breite + (@umkreis/111);
SET @breite_sued = @ibk_breite - (@umkreis/111);
SET @laenge_west = @ibk_laenge - (@umkreis/ABS(COS(RADIANS(@ibk_breite))) * 111);
SET @laenge_ost = @ibk_laenge + (@umkreis/ABS(COS(RADIANS(@ibk_breite))) * 111);
SET @mp = CONCAT('MULTIPOINT(', @breite_sued , ' ', @laenge_west, ', ', @breite_nord, ' ', @laenge_ost, ')');
SET @quadrat = ENVELOPE(GEOMFROMTEXT(@mp));
RETURN
SELECT (
FLOOR(
SQRT(
POW((@ibk_breite - sub.breite) * 111, 2) +
POW((@ibk_laenge - sub.laenge) * 111 * ABS(COS(RADIANS(@ibk_breite))),2)
)
)
) AS distanz
FROM
(
SELECT Y(location) AS laenge, X(location) AS breite FROM meetings WHERE MBRCONTAINS(@quadrat, location)
)
AS sub;
END; $$
DELIMITER ;
しかし、それはエラーがスローされます:
今私はそれ機能作りたい
1064 - You have an error in your SQL syntax; check the manual that >corresponds to your MySQL server version for the right syntax to use near
'SELECT (
FLOOR(
SQRT(
POW((@i' at line 18
私はphpMyAdminのでクエリを実行した場合、それは何の問題もなく動作します。
は再びエラーメッセージが表示されていorcurr? – reporter