В основном я имею следующую хранимую процедуру:MySql хранимой процедуры, как вставить более одной переменной с CONCAT
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
Она имеет следующие прохождения через:
IN rid varchar(500), lat double, lon double
Но мне нужно пройти в переменных широты и долготы. Я попытался установить их, а затем добавить их в запрос, но он не распознает их. Это то, что я пытаюсь сделать, не успешна:
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
Я не уверен, как это сделать. У кого-нибудь есть предложения? Заранее спасибо!!
не могли бы вы включить их в конкатенации, как вы делали 'rid'? – Uueerdo
Не могли бы вы привести мне пример? – lov2code