UPDATE sous MySQL + fonctions string ?

UPDATE sous MySQL + fonctions string ? - SQL/NoSQL - Programmation

Marsh Posté le 30-09-2005 à 13:04:56    

Bonjour,
voila cela fait un bout de temps que je n'ai pas de fait SQL.
 
Je voulais savoir si il etait possible de faire une requete avec dislocation + concatenation de chaine...
Je m explique, je voudrais faire un update du style :
 
UPDATE nom_table SET mon_champ= x + '\2005\'+ y WHERE mon_champ LIKE '%valeur1%' AND mon_champ='%valeur2%'
 
ou x et y serait une partie de "mon_champ" (par ex x serait les 10 premiers caracteres de la valeur du champ et y les 5 derniers).
Bref je voudrais mettre a jour ma db en intercalant du texte dans un champ VARCHAR
 
Merci a toute personne qui pourrait me venir en aide
 
 
[Edit] fonction substr peut etre ???


Message édité par mkracing66 le 30-09-2005 à 13:12:35
Reply

Marsh Posté le 30-09-2005 à 13:04:56   

Reply

Marsh Posté le 30-09-2005 à 13:48:41    

Code :
  1. UPDATE nom_table
  2. SET mon_champ = SUBSTRING(mon_champ, 1, 10) + '\2005\'+ SUBSTRING(mon_champ, LENGTH(mon_champ) - 5)
  3. WHERE mon_champ LIKE '%valeur1%'
  4. AND mon_champ LIKE '%valeur2%';

Reply

Marsh Posté le 30-09-2005 à 14:01:58    

merci bien , j en etais arrive a la meme conclusion mais je n etais pas certain que ca fonctionnerait dans un update avec une affection

Reply

Marsh Posté le 30-09-2005 à 14:26:58    

ben tiens finalement je ne pige pas pk ca ne passe pas.....il semblerait qu il y ait un pb au niveau de la concatenation car sous easyphp/phpmyadmin la requete est executee, un enregistrement est mis a jour, il a pour valeur 0 (meme en testant avec un truc tout bete style substring(mon_champ, 1)+'toto' )
 
une idee ?  
 

Reply

Marsh Posté le 30-09-2005 à 14:28:48    

Code :
  1. UPDATE nom_table
  2. SET mon_champ = CONCAT(SUBSTRING(mon_champ, 1, 10), '2005', SUBSTRING(mon_champ, LENGTH(mon_champ) - 5))
  3. WHERE mon_champ LIKE '%valeur1%'
  4. AND mon_champ LIKE '%valeur2%';

Reply

Marsh Posté le 30-09-2005 à 14:33:25    

GG :)

Reply

Sujets relatifs:

Leave a Replay

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