Grundsätzlich habe ich die folgende gespeicherte Prozedur:MySql gespeicherte Prozedur, wie mehr als eine Variable mit CONCAT einfügen
BEGIN
SET @query := CONCAT("SELECT *,
sqrt(
(POW(a.Latitude - co.CenterLatitude, 2)* 68.1 * 68.1) +
(POW(a.Longitude - co.CenterLongitude, 2) * 53.1 * 53.1)
) AS distance
FROM table1 as r
JOIN table2 as co ON co.field1 = r.field2
JOIN table3 AS a ON r.field1 = a.field2
WHERE ",rid);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
Es hat die folgenden Durch:
IN rid varchar(500), lat double, lon double
Aber ich muss passieren in den Breiten- und Längenvariablen. Ich habe versucht, sie zu setzen und sie dann in die Abfrage einzufügen, aber sie werden nicht erkannt. Dies ist, was ich zu tun versucht, was nicht erfolgreich ist:
BEGIN
SET @lat := lat;
SET @lon := lon;
SET @query := CONCAT("SELECT *,
sqrt(
(POW(a.Latitude - @lat, 2)* 68.1 * 68.1) +
(POW(a.Longitude - @lon, 2) * 53.1 * 53.1)
) AS distance
FROM table1 as r
JOIN table2 as co ON co.field1 = r.field2
JOIN table3 AS a ON r.field1 = a.field2
WHERE ",rid);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
Ich bin nicht sicher, wie dies zu erreichen. Hat jemand irgendwelche Vorschläge? Vielen Dank im Voraus!!
konnte nicht einfach sind sie in der Verkettung zu geben, wie du getan hast "los"? – Uueerdo
Können Sie mir ein Beispiel geben? – lov2code