Maison > base de données > tutoriel mysql > Comment exécuter des requêtes dynamiques dans MySQL ?

Comment exécuter des requêtes dynamiques dans MySQL ?

Linda Hamilton
Libérer: 2024-11-29 22:06:11
original
447 Les gens l'ont consulté

How to Execute Dynamic Queries in MySQL?

Exécution de requêtes dynamiques dans MySQL

L'exécution de requêtes dynamiques, où l'instruction SQL elle-même est construite au moment de l'exécution, est généralement effectuée dans MSSQL à l'aide de la procédure stockée EXEC. Cependant, MySQL n'a pas d'équivalent direct.

Surmonter le défi

Pour exécuter des requêtes dynamiques dans MySQL, une approche consiste à construire la chaîne de requête en tant que variable, puis à utiliser les instructions PREPARE et EXECUTE.

Implémentation

Le code suivant montre comment exécuter une requête dynamique dans MySQL :

SET @queryString = (
SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM (
    SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( 
           SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 
    ) as qwe 
) as www
);

PREPARE stmt FROM @queryString;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 
SET @asd = NULL;
Copier après la connexion
  1. Construisez la chaîne de requête en tant que variable (@queryString) en utilisant la concaténation de chaînes dynamique et les sous-requêtes.
  2. Préparez l'instruction à l'aide de l'instruction PREPARE avec la chaîne de requête construite comme entrée.
  3. Exécutez l'instruction préparée à l'aide de l'instruction EXECUTE.
  4. Désalouez l'instruction instruction préparée à l'aide de l'instruction DEALLOCATE PREPARE.

En suivant cette approche, MySQL peut exécuter des requêtes dynamiques même si la requête elle-même n'est pas connue à l'avance.

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