Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes 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 07/02/2011, 08h54   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
Par défaut Regrouper 2 update dans une seule requête

Bonjour,

j'ai 2 update
Code :
1
2
3
4
$sql = 'UPDATE ma_table SET qte=qte-1 WHERE nom = "georges"';
$result = mysql_query($sql);
$sql = 'UPDATE ma_table SET qte=qte+2 WHERE nom = "virginie"';
$result = mysql_query($sql);
je voudrais regrouper ces 2 update dans la même requête.

merci
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 09h34   #2
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
bonjour

Ceci devrait t'aider mais c'est uniquement fonctionnel pour ces deux prénom

Code :
1
2
3
4
5
 
UPDATE ma_table,
(SELECT nom,IF(nom='virginie',2,IF(nom='georges',2,0)) AS NEWQTE FROM nom WHERE nom IN ('georges','virginie')) AS ADDQTE 
SET ma_table.QTE=ma_table.QTE+NEWQTE 
WHERE ADDQTE.nom=ma_table.nom
Cordialement
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 09h38   #3
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
en fait, il y a plusieurs prénoms, comment faire ?
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 09h42   #4
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
Il faut contruire ta requete
Code :
(SELECT nom,IF(nom='virginie',2,IF(nom='georges',2,0)) AS NEWQTE FROM nom WHERE nom IN ('georges','virginie')) AS ADDQTE
avec la liste de tout les prénoms et qté associée.
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h18   #5
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
Quand j'applique ta requête avec 2 noms, ma table ne s'actualise pas
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h32   #6
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
dsl erreur de recopie

Code :
1
2
3
4
5
6
UPDATE ma_table,
(SELECT nom,IF(nom='virginie',2,IF(nom='georges',1,0)) AS NEWQTE 
FROM ma_table 
WHERE nom IN ('georges','virginie')) AS ADDQTE 
SET ma_table.QTE=ma_table.QTE+NEWQTE WHERE  
ADDQTE.nom=ma_table.nom
le FROM nom etait foireux et j'avais par changé les qté etaient identiques pour les deux perso.

Cordialement
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 15h09   #7
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
impeccable ça fonctionne, j'aurais besoin de rajouter une autre condition je la place où
merci
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 17h23   #8
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
est-ce correct ?
Code :
1
2
3
4
5
6
UPDATE ma_table,
(SELECT nom,IF(nom='virginie',2,IF(nom='georges',1,0)) AS NEWQTE 
FROM ma_table 
WHERE nom IN ('georges','virginie')) AS ADDQTE 
SET ma_table.QTE=ma_table.QTE+NEWQTE WHERE  
ADDQTE.nom=ma_table.nom AND ma_table.QTE != '0'
est-ce que les requêtes prennent les !== pour différencier "" de 0

merci
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 17h57   #9
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
Bonsoir,

Ce que tu as mis dans ton dernier post devrait exclure de la mise a jour tout
les enregistrement de ma table qui on une qte égale à 0
Pour le différent c'est <> qui est utilisé.

Cordialement
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 12h22   #10
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
un autre pb , il faut que je regroupe ces 2 update
Code :
1
2
3
4
$sql = 'UPDATE ma_table SET config_value = "roger" WHERE config_name = "newest_username"';
$result = mysql_query($sql);
$sql = 'UPDATE ma_table SET config_value = 250 WHERE config_name = "newest_user_id"';
$result = mysql_query($sql);
merci
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 15h27   #11
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
ça fonctionne
Code :
1
2
3
4
5
6
UPDATE ma_table,
(SELECT config_name,IF(config_name='newest_username','roger',IF(config_name='newest_user_id',250,0)) AS NEWCV 
FROM ma_table 
WHERE config_name IN ('newest_username','newest_user_id')) AS ADDCV 
SET ma_table.config_value=NEWCV WHERE  
ADDCV.config_name=ma_table.config_name
merci
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 20h54   #12
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
je reviens sur ce sujet, je voudrais mettre à jour 2 valeurs

Code :
1
2
3
4
$sql = 'UPDATE ma_table SET config_value = "roger", age = 40 WHERE config_name = "newest_username"';
$result = mysql_query($sql);
$sql = 'UPDATE ma_table SET config_value = 250, age = 0 WHERE config_name = "newest_user_id"';
$result = mysql_query($sql);
merci
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 21h58   #13
Invité régulier
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 6
Points : 6
est-ce correct ?

Code :
1
2
3
4
5
6
7
8
9
UPDATE ma_table,
(SELECT config_name,IF(config_name='newest_username','roger',IF(config_name='newest_user_id',250,0)) AS NEWCV
FROM ma_table 
WHERE config_name IN ('newest_username','newest_user_id')) AS ADDCV, 
(SELECT config_name,IF(config_name='newest_username','40',IF(config_name='newest_user_id',0,0)) AS NEWCV2 
FROM ma_table 
WHERE config_name IN ('newest_username','newest_user_id')) AS ADDCV2 
SET ma_table.config_value=NEWCV, ma_table.age=NEWCV2 WHERE  
ADDCV.config_name=ma_table.config_name AND ADDCV2.config_name=ma_table.config_name
pol2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h51.


 
 
 
 
Partenaires

Hébergement Web