Come anteporre una stringa a un valore di colonna in MySQL?


123

Ho bisogno di una dichiarazione di aggiornamento SQL per aggiornare un particolare campo di tutte le righe con una stringa "test" da aggiungere davanti al valore esistente.

Ad esempio, se il valore esistente è "try", dovrebbe diventare "testtry".

Risposte:


261

Puoi usare la funzione CONCAT per farlo:

UPDATE tbl SET col=CONCAT('test',col);

Se vuoi diventare più intelligente e aggiornare solo le colonne che non hanno già il test anteposto, prova

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';

16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

update TICKET set status_details = CONCAT (status _details, 'abc') dove ticket_id = 75108; ERRORE 1583 (42000): parametri errati nella chiamata alla funzione nativa "CONCAT"
nirmesh khandelwal

9

Molte funzioni di aggiornamento delle stringhe in MySQL sembrano funzionare in questo modo: se un argomento è null, vengono restituite nullanche la concatenazione o altre funzioni . Quindi, per aggiornare un campo con nullvalore, prima impostalo su un valore non nullo, come''

Per esempio:

update table set field='' where field is null;
update table set field=concat(field,' append');

6

È semplice

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

Correggere fino alla clausola WHERE, in cui si concatena solo il test alle colonne che iniziano già con test. Quindi: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom

0
  • UPDATE nome_tabella SET Colonna1 = CONCAT ('newtring', nome_tabella.Colonna1) dove 1
  • UPDATE nome_tabella SET Colonna1 = CONCAT ('newtring', nome_tabella.Colonna2) dove 1
  • UPDATE nome_tabella SET Colonna1 = CONCAT ('newtring', nome_tabella.Colonna2, 'newtring2') dove 1

Possiamo concatenare la stessa colonna o anche un'altra colonna della tabella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.