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 14/05/2007, 13h59   #1
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 181
Points : 37
Points : 37
Par défaut Utiliser une chaine de caractère dans une clause WHERE

Bonjour,
dans le cadre de mon développement, j'utilise les procédures stockées et notamment je construit une clause restrictive par le biais d'une chaine de caractère et je souhaite l'utilisé dans mon SELECT.
Or bien entendu, celle-ci est considére pour ce qu'elle est : une chaine de caractère.

Comment faire pour l'utiliser dans mon select?

Code :
1
2
3
4
 
SET c_where:='idproduit=1 OR idproduit=2';
 
SELECT * produit WHERE c_where;
Merci par avance pour vos réponses

Cordialement,
Daniel
DanaX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 15h40   #2
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 181
Points : 37
Points : 37
Est il impossible de créer à la volée des sous requetes car je ne veux pas avoir de multiple resulset pour rien!!
DanaX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 06h38   #3
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 181
Points : 37
Points : 37
Up Up


Please help, car j ai tout essaye je vois pas comment réaliser une requete disposant d'un nombre de paramètre variable
DanaX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 10h33   #4
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Peut-être avec une liste (comme "1;2;4") puis en utilisant un locate. Ou alors en éclatant la liste puis en la mettant dans une table temporaire
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 11h33   #5
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 181
Points : 37
Points : 37
Citation:
Envoyé par Sivrît
Peut-être avec une liste (comme "1;2;4") puis en utilisant un locate. Ou alors en éclatant la liste puis en la mettant dans une table temporaire
Le pb n'étant pas de décomposer la contrainte c'est de l'utiliser alors qu'il s'agit d'une chaine de caractère et de l'interpreter dans mon where.
DanaX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 12h02   #6
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
J'ai trouvé ça dans les forum mysql :

Code :
1
2
3
4
5
6
7
 
CREATE procedure foo ( limit_val int )
begin
  SET @sql = concat('select * from myTable limit ', limit_val);
  prepare stmt FROM @sql; execute stmt;
end
//
Sivrît 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 06h42.


 
 
 
 
Partenaires

Hébergement Web