2010-05-03 21 views
35

Necesito "agregar" datos a un campo que ya contiene datos sin borrar lo que está allí actualmente. Por ejemplo, si el campo contiene HTML, necesito agregar HTML adicional al campo. ¿Hay una llamada SQL que hará esto o debo llamar los datos en ese campo, concatenar los datos nuevos a los datos existentes y volver a cargarlos en la base de datos?Adjuntar datos a un campo de base de datos MySQL que ya tiene datos

+0

casi duplicado de http://stackoverflow.com/questions/680801/how-to-prepend-a-string-to-a-column-value-in-mysql - se trata de anteponer – qdinar

Respuesta

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

nice one really awesome. –

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

... por ejemplo. Tu DONDE sería diferente, por supuesto.

3

Anexar al final de un campo, separados con con un salto de línea:

UPDATE Table SET Comment = CONCAT_WS(CHAR(10 USING UTF8), Comment, 'my comment.'); 
  • CONCAT_WS() añade múltiples cadenas separadas por un separador dado.
  • CHAR(10, UTF8) es un salto de línea.
1

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

Si el campo contiene un valor NULL, CONCAT también devolverá NULL. Usar IFNULL te ayudará a actualizar la columna, incluso si tiene valor NULL.

Cuestiones relacionadas