Maison >base de données >tutoriel mysql >Comment puis-je transmettre des tableaux aux procédures stockées MySQL ?
Transmission de tableaux aux routines stockées MySQL
Une exigence courante consiste à transmettre des tableaux de valeurs en tant que paramètres aux routines stockées MySQL. Cependant, contrairement à de nombreux autres systèmes de gestion de bases de données, MySQL ne prend pas en charge cette fonctionnalité de manière native.
Une solution viable consiste à convertir le tableau en chaîne et à le transmettre en argument. Cette chaîne peut ensuite être utilisée dans la routine stockée pour créer une table temporaire à l'aide des instructions CONCAT() et SELECT INTO :
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 ;
En passant le tableau chaîne dans la procédure GetFruits, vous pouvez créer dynamiquement une table temporaire. table contenant les noms de fruits spécifiés, permettant un traitement ultérieur dans votre script.
Pour utiliser cette procédure, vous pouvez attribuer le tableau de chaînes à une variable MySQL, puis appeler le fichier stocké. routine :
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
Cette approche vous permet effectivement de transmettre un tableau de valeurs à une routine stockée dans MySQL, facilitant ainsi les opérations de base de données complexes impliquant des listes de chaînes de longueur variable.
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!