Pergunta

Eu preciso de uma instrução SQL update para atualizar um campo particular de todas as linhas, com um "teste" string a ser adicionado na frente do valor existente.

Por exemplo, se o valor existente é "tentar" deve tornar-se "testtry".

Foi útil?

Solução

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

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

Se você quiser obter mais inteligente e apenas atualizar colunas que ainda não têm teste prefixado, tente

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

Outras dicas

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

Muitas das funções de actualização corda em MySQL parece estar funcionando assim: Se um argumento é null, então concatenação ou outras funções null retornar também. Então, para atualizar um campo com valor null, primeiro conjunto-lo para um valor não nulo, como ''

Por exemplo:

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

Isso é um simples

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
  • ACTUALIZAÇÃO nome_da_tabela SET Column1 = CONCAT ( 'newtring', table_name.Column1) onde 1
  • ACTUALIZAÇÃO nome_da_tabela SET Column1 = CONCAT ( 'newtring', table_name.Column2) onde 1
  • ACTUALIZAÇÃO nome_da_tabela SET Column1 = CONCAT ( 'newtring', table_name.Column2, 'newtring2') onde 1

Podemos concat mesma coluna ou também outra coluna da tabela.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top