2010-05-03 6 views
35

Je dois "ajouter" des données à un champ qui contient déjà des données sans effacer ce qui s'y trouve actuellement. Par exemple, si le champ contient du HTML, j'ai besoin d'ajouter du HTML supplémentaire au champ. Y a-t-il un appel SQL qui fera cela ou dois-je appeler les données dans ce champ, concaténer les nouvelles données aux données existantes et les recharger dans la base de données?Ajout de données dans un champ de base de données MySQL contenant déjà des données

+0

presque dupliquer de http://stackoverflow.com/questions/680801/how-to-prepend-a-string-to-a-column-value-in-mysql - il s'agit d'ajouter – qdinar

Répondre

71
UPDATE Table SET Field=CONCAT(Field,'your extra html'); 
+0

une belle vraiment génial. –

11
UPDATE myTable SET html=concat(html,'<b>More HTML</b>') WHERE id='10' 

... par exemple. Votre O WH serait différent bien sûr.

3

Ajout à la fin d'un champ, séparés par un saut de ligne:

UPDATE Table SET Comment = CONCAT_WS(CHAR(10 USING UTF8), Comment, 'my comment.'); 
  • CONCAT_WS() ajoute plusieurs chaînes séparées par un séparateur donné.
  • CHAR(10, UTF8) est un saut de ligne.
1

UPDATE Table SET Field=CONCAT(IFNULL(Field, ''), 'Your extra HTML')

Si le champ contient une valeur NULL CONCAT retourne alors également NULL. Utiliser IFNULL vous aidera à mettre à jour une colonne même si elle a une valeur NULL.

Questions connexes