Passer un tableau à une routine stockée MySQL
Lorsque vous travaillez avec des routines stockées dans MySQL, il peut être nécessaire de transmettre un tableau de chaînes comme paramètre. Cette tâche présente des défis en raison de l'absence d'un type de données tableau explicite dans MySQL. Cependant, en tirant parti d'une technique SQL dynamique, nous pouvons obtenir cette fonctionnalité.
Solution : Construire une requête SQL dynamique
Pour transmettre un tableau à une routine stockée, nous peut utiliser du SQL dynamique, où nous construisons une requête SQL au moment de l'exécution en utilisant la concaténation de chaînes. La procédure stockée suivante illustre cette approche :
DELIMITER $$ CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255)) BEGIN SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END $$ DELIMITER ;
Dans cette procédure stockée :
Utilisation :
Pour utiliser la procédure stockée, nous pouvons l'appeler et transmettre le tableau de chaînes comme suit :
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
Cette approche nous permet de créer et d'exécuter dynamiquement une requête basée sur le tableau fourni, fournissant une solution de contournement à l'absence de type de données de tableau natif dans MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!