Como para preceder uma string para um valor de coluna no MySQL?
-
22-08-2019 - |
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".
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.