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".

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%';

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

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');

6

Essa é simples

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.