SQL questions sur update

SQL questions sur update - SQL/NoSQL - Programmation

Marsh Posté le 12-02-2010 à 18:45:58    

bonjour,  
 
J'ai deux questions/problemes avec Update pour la mise a jour de tables :  
 
1/
je met à jour plusieurs champ d'une table et deux de ces champs ont la même valeur, existe t il une syntaxe de requete pour avoir quelque chose comme : UPDATE ma_table SET champ1=champ2=valeur1, champ3=valeur3,.....  ou "valeur1" est une sous requete avec des conditions que je voudrai éviter de la doubler.
 
2/
j'ai une table du type :  
 
lien | groupe | ville
A   | 1         | 450
B   | 1         | 0
C   | 2         | 0
D   | 2         | 210
E   | 2         | 0
 
je voudrai mettre a jour la ville quand elle est = 0 en fonction de la ville différente de 0 du meme groupe.
Je sais pas trop comment m'y prendre pour le faire en une seule requete (un UPDATE ma_table SET ville=ville WHERE..... ça parait bizarre).
 
 
 
Si quelqu'un a une idée ou une solution je suis preneur.  :jap:    
 
 
 
 

Reply

Marsh Posté le 12-02-2010 à 18:45:58   

Reply

Marsh Posté le 12-02-2010 à 20:44:48    

hutarios a écrit :


1/
je met à jour plusieurs champ d'une table et deux de ces champs ont la même valeur, existe t il une syntaxe de requete pour avoir quelque chose comme : UPDATE ma_table SET champ1=champ2=valeur1, champ3=valeur3,.....  ou "valeur1" est une sous requete avec des conditions que je voudrai éviter de la doubler.


non, à la rigueur tu peux faire  

Code :
  1. SET @val = SELECT val FROM TABLE;
  2. UPDATE TABLE SET champ1=@val, champ2=@val, champ3=valeur3...


mais pas d'assignation multiple comme tu le souhaiterais.
 

hutarios a écrit :


2/
j'ai une table du type :  
 
lien | groupe | ville
A   | 1         | 450
B   | 1         | 0
C   | 2         | 0
D   | 2         | 210
E   | 2         | 0
 
je voudrai mettre a jour la ville quand elle est = 0 en fonction de la ville différente de 0 du meme groupe.
Je sais pas trop comment m'y prendre pour le faire en une seule requete (un UPDATE ma_table SET ville=ville WHERE..... ça parait bizarre).


tu es obligé de le faire en une seule requête ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-02-2010 à 21:20:41    

Merci Harkonnen pour ta réponse, pour la 2 je ne suis pas obligé, actuellement ça fonctionne avec plusieurs requetes et des variables en php mais ce script est assez long pour metre la table entièrement à jour, je cherche quelque chose de plus rapide avec uniquement des requetes SQL sans passer par des variables en php.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed