MySQL permet d'utiliser des procédure stockées lorsque l'on souhaite sauvegarder une ou plusieurs séries d'opération. Ces procédures peuvent aussi prendre des paramètres (en entrée comme en sortie)
DELIMITER $
CREATE OR REPLACE PROCEDURE getClosestCity (
IN city VARCHAR(255),
OUT closestCity VARCHAR(255)
)
BEGIN
SELECT subquery.title INTO closestCity FROM (
SELECT
title,
ST_Distance_Sphere(
location,
(SELECT location FROM posts WHERE title = city)
) as distance
FROM posts
WHERE title != city
ORDER BY distance DESC
LIMIT 1
) as subquery;
END$
Delimiter;
On peut ensuite utiliser cette procédures
CALL getClosestCity('Montpellier', @city);
SELECT @city;
Si vous voulez recherche une procédure vous pouvez utiliser
SHOW PROCEDURE STATUS LIKE 'getClosestCity';