Como acrescentar uma string a um valor de coluna no MySQL?

123

Eu preciso de uma instrução de atualização SQL para atualizar um campo específico de todas as linhas com uma string "teste" a ser adicionada na frente do valor existente.

Por exemplo, se o valor existente for "try", ele deverá se tornar "testtry".

santanu
fonte

Respostas:

261

Você pode usar a função CONCAT para fazer isso:

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

Se você deseja ser mais inteligente e atualizar apenas as colunas que ainda não possuem o teste precedido, tente

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
Paul Dixon
fonte
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
Ferdinand Beyer
fonte
atualizar TICKET definir status_details = CONCAT (status_details, 'abc') em que ticket_id = 75108; ERROR 1583 (42000): parâmetros incorrectos na chamada para a função nativa 'CONCAT'
khandelwal nirmesh
9

Muitas funções de atualização de string no MySQL parecem estar funcionando assim: Se um argumento é null, então a concatenação ou outras funções retornam nulltambém. Portanto, para atualizar um campo com nullvalor, primeiro defina-o como um valor não nulo, como''

Por exemplo:

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

Essa é simples

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
soulmerge
fonte
Corrija até a cláusula WHERE, na qual você concatea apenas o teste para colunas que já começam com test. Assim: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom
0
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column1) em que 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2) em que 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2, 'newtring2') em que 1

Podemos concaturar a mesma coluna ou também outra coluna da tabela.

user3419778
fonte