Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2008, 11h29   #1
Invité régulier
 
Inscription : juin 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 18
Points : 7
Points : 7
Par défaut creation d une requete dynamique dans une procedure stockee

bonjour au forum,

je voudrais creer une requete dynamiquement dans une procedure stoquee
du type equivalent en php
Code :
1
2
3
4
5
6
7
8
9
10
 
FUNCTION toto($v1,$v2)
{
$sql='select a,b from c where d=e ';
IF ($v1==1)
       $sql.='and f=g';
IF ($v2==1)
       $sql.='and h=i';
mysql($sql);  
}
Est-ce possible de faire cela avec les procédure stocke?

C'est a dire est-ce qu'on peut travailler sur une requete et ajouter
des conditions en fonctions des arguments passés?

Merci.

Oxilab.
oxilab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 13h13   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540


Oui, mais il faut utiliser les prepared statements. Voir les instructions PREPARE et EXECUTE.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 15h57   #3
Invité régulier
 
Inscription : juin 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 18
Points : 7
Points : 7
Genial!!!!

Un grand merci.

Exemple pour les lecteurs:

Code :
1
2
3
4
5
SET @s = CONCAT('SELECT * FROM authors WHERE id BETWEEN ', _min, ' AND ', _max);  
 
PREPARE stmt1 FROM @s;  
EXECUTE stmt1;  
DEALLOCATE PREPARE stmt1;
C'est génial!!
oxilab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h19.


 
 
 
 
Partenaires

Hébergement Web