Je suis totalement nouveau avec la procédure stockée et j'essaie de comprendre ses concepts de base. C'est mon premier et bien sûr il y a quelque chose qui ne va pas.MySql Procédure stockée O WH "variabilisée" selon un paramètre
Fondamentalement, la requête va être la même (l'original est plus complexe et il y a d'autres opérations) mais la clause WHERE change en fonction du paramètre selType
. Donc ce que j'essaie de faire est une sorte de "variabilisation" de la clause WHERE
en fonction de la valeur param. Je ne sais pas si c'est la bonne approche et, si oui, quel est le problème.
DELIMITER //
CREATE PROCEDURE `testProcedure` (IN addressId INT, IN selType BOOLEAN)
BEGIN
DECLARE whereUserCriteria VARCHAR(127);
IF selType = 1 THEN
SET whereUserCriteria = CONCAT('address_id = ', addressId);
ELSE
SET whereUserCriteria = 'address_id = 1';
END IF;
SELECT whatever
FROM wherever AS ad
WHERE whereUserCriteria ;
END //
Il est agréable de voir que quand il ne variabilised, cela fonctionne parfaitement mais, dès que j'utiliser une variable pour le rendre dynamique, il cesse de fonctionner. Bien sûr, il s'agit d'un simple exemple visant à comprendre quelle est la meilleure approche dans des cas comme celui-ci.
Si vous voulez créer un contrôle de requête dynamique [** this **] (http://stackoverflow.com/a/5728155/3470178) –