Question :
Dans MySQL, comment pouvez-vous transmettre efficacement un tableau de chaînes comme paramètre d'une routine stockée ? Le tableau peut contenir un grand nombre d’éléments de longueurs variables. L'objectif est d'insérer ces chaînes dans une table en mémoire pour une manipulation ultérieure des données.
Exemple :
Considérons le tableau contenant les valeurs de chaîne "Banana, Apple, Orange". Le résultat souhaité est une table temporaire avec une colonne, "fruitName", remplie avec ces valeurs.
Solution possible :
L'exemple de fonction fourni montre comment y parvenir tâche dans Microsoft SQL Server, mais elle peut ne pas être directement applicable à MySQL. Explorez des approches alternatives pour MySQL.
Implémentation MySQL :
Vous pouvez construire une requête dynamique à l'aide d'une instruction préparée pour transmettre le tableau sous forme de chaîne et obtenir les résultats souhaités. Voici une illustration :
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 ;
Utilisation :
Pour utiliser cette procédure stockée, suivez ces étapes :
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
Cette approche vous permet pour transmettre efficacement un tableau de chaînes et générer la table en mémoire nécessaire à la manipulation des données 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!