Maison >base de données >tutoriel mysql >Comment puis-je transmettre efficacement un tableau de chaînes à une procédure stockée MySQL ?

Comment puis-je transmettre efficacement un tableau de chaînes à une procédure stockée MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-11 19:13:12418parcourir

How Can I Efficiently Pass a String Array to a MySQL Stored Procedure?

Passer un tableau à la routine stockée MySQL

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn