Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5248 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  pb UPDATE et IF(,,)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb UPDATE et IF(,,)

n°1557294
theredled
● REC
Posté le 09-05-2007 à 12:15:44  profilanswer
 

hello tous,

 

voilà ma requete :

 
Code :
  1. UPDATE orders_products SET date_first_dl=IF(tracks_is_dl<>'yes',
  2. '11-11-1111', '01-01-1991'), tracks_is_dl='yes'
  3. WHERE orders_products_id='510'


à la suite de ça, "tracks_is_dl" est bien changé, mais pas "date_first_dl" qui reste à '00-00-0000'...

 

Pourquoi ?

 

2e question : je ne voudrais updater l'un les champ que si une condition est vérifiée.
Par ex, dans la requete précédente, je voudrais mettre toujours "tracks_is_dl" à 'yes', mais ne modifier "date_first_dl" QUE SI "tracks_is_dl" est à 'no' (avant d'etre mis à yes bien sur)

 

Je sais aps si je m'exprime bien. Une sorte de :

Code :
  1. UPDATE orders_products SET IF(tracks_is_dl<>'yes',
  2. date_first_dl='06-06-2007', **NE RIEN FAIRE**), tracks_is_dl='yes'
  3. WHERE orders_products_id='510'


Bien sur ça marche pas ce genre de truc.


Message édité par theredled le 09-05-2007 à 12:16:12

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
mood
Publicité
Posté le 09-05-2007 à 12:15:44  profilanswer
 

n°1557317
olivthill
Posté le 09-05-2007 à 13:06:51  profilanswer
 

Avec quelle base de données ?
 
Si c'est avec Oracle, il faudrait essayer avec DECODE plutôt que IF.
 
Pour ne rien faire, une technique habituelle consiste à remettre la même chose :
 
   date_first_dl=IF(tracks_is_dl<>'yes', '06-06-2007', date_first_dl)

n°1557371
theredled
● REC
Posté le 09-05-2007 à 14:39:27  profilanswer
 

olivthill a écrit :

Avec quelle base de données ?
 
Si c'est avec Oracle, il faudrait essayer avec DECODE plutôt que IF.
 
Pour ne rien faire, une technique habituelle consiste à remettre la même chose :
 
   date_first_dl=IF(tracks_is_dl<>'yes', '06-06-2007', date_first_dl)


MySQL pardon j'ai pas précisé :jap:
 
Ta technique  je l'ai essayée ça me sempble ne pas marcher... (normal puisque même mon premier exemple ne marche pas)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1557423
did-54
Posté le 09-05-2007 à 15:47:44  profilanswer
 

chais pas, mais le if renvoit rien, donc l'affectation ne marche pas je pense. Tu peux pas coller un return ou un truc comme ca ? :D

n°1557434
anapajari
s/travail/glanding on hfr/gs;
Posté le 09-05-2007 à 16:02:11  profilanswer
 

question: tu souhaites mettre à jour tous les enregistrements de ta base, en leur mettant à tous track_is_dl à 'yes' et en changeant la date si track_is_dl n'était pas à yes.
C'est bien ça?
Si oui, est-ce que la simple requête suivante ne te suffirait pas:

Code :
  1. UPDATE orders_products SET 
  2.     date_first_dl='06-06-2007', tracks_is_dl='yes'
  3.     WHERE orders_products_id='510' and tracks_is_del <> 'yes'


Message cité 1 fois
Message édité par anapajari le 09-05-2007 à 16:02:28
n°1557435
theredled
● REC
Posté le 09-05-2007 à 16:04:20  profilanswer
 

anapajari a écrit :

question: tu souhaites mettre à jour tous les enregistrements de ta base, en leur mettant à tous track_is_dl à 'yes' et en changeant la date si track_is_dl n'était pas à yes.
C'est bien ça?
Si oui, est-ce que la simple requête suivante ne te suffirait pas:

Code :
  1. UPDATE orders_products SET 
  2.     date_first_dl='06-06-2007', tracks_is_dl='yes'
  3.     WHERE orders_products_id='510' and tracks_is_del <> 'yes'



Effectivement :o
 
De plus, vous avez bien sûr remarqué que j'avais inversé la date :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  pb UPDATE et IF(,,)

 

Sujets relatifs
[ASP .NET] GridView + UpdateUPDATE IF EXIST
[AS400 / PHP] Update -> Pb de queryProblème sur un UPDATE (T-SQL)
Connaitre la ligne affecté par la fonction 'UPDATEAJAX : Update d'une table mysql toutes les secondes sans refresh
[résolu] update IF exists ELSE insert[INGRES] Comment faire un update ?
probleme de update - Mysql - Pas de misa a jourProblème avec un update en php/mysql
Plus de sujets relatifs à : pb UPDATE et IF(,,)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)