Maison > base de données > tutoriel mysql > Comment puis-je transmettre des tableaux aux procédures stockées MySQL ?

Comment puis-je transmettre des tableaux aux procédures stockées MySQL ?

Patricia Arquette
Libérer: 2024-12-08 18:49:12
original
1019 Les gens l'ont consulté

How Can I Pass Arrays to MySQL Stored Procedures?

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 ;
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal