2010-05-03 12 views
35

Ho bisogno di "aggiungere" dati a un campo che contiene già dati senza cancellare ciò che è attualmente lì. Ad esempio se il campo contiene HTML, ho bisogno di aggiungere altro HTML al campo. Esiste una chiamata SQL che eseguirà questa operazione o è necessario chiamare i dati in quel campo, concatenare i nuovi dati ai dati esistenti e ricaricarli nel database?Aggiunta di dati a un campo di database MySQL che contiene già dei dati

+0

quasi duplicato di http://stackoverflow.com/questions/680801/how-to-prepend-a-string-to-a-column-value-in-mysql - si tratta di prependere – qdinar

risposta

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

bello davvero impressionante. –

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

... per esempio. Il tuo DOVE sarebbe diverso, naturalmente.

3

accodamento alla fine di un campo, separati da un'interruzione di linea:

UPDATE Table SET Comment = CONCAT_WS(CHAR(10 USING UTF8), Comment, 'my comment.'); 
  • CONCAT_WS() aggiunge più stringhe separate da un dato separatore.
  • CHAR(10, UTF8) è un'interruzione di riga.
1

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

Se il campo contiene valore NULL allora CONCAT sarà anche restituire NULL. L'uso di IFNULL ti aiuterà ad aggiornare la colonna anche se ha un valore NULL.

Problemi correlati