¿Cómo anteponer una cadena a un valor de columna en MySQL?

123

Necesito una declaración de actualización de SQL para actualizar un campo particular de todas las filas con una "prueba" de cadena que se agregará al frente del valor existente.

Por ejemplo, si el valor existente es "probar", debería convertirse en "testtry".

santanu
fuente

Respuestas:

261

Puede usar la función CONCAT para hacer eso:

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

Si desea ser más inteligente y solo actualizar las columnas que aún no tienen una prueba antepuesta, intente

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
Paul Dixon
fuente
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
Fernando Beyer
fuente
actualizar TICKET set status_details = CONCAT (status _details, 'abc') donde ticket_id = 75108; ERROR 1583 (42000): parámetros incorrectos en la llamada a la función nativa 'CONCAT'
nirmesh khandelwal
9

Muchas funciones de actualización de cadenas en MySQL parecen estar funcionando así: si un argumento lo es null, entonces la concatenación u otras funciones nulltambién regresan . Entonces, para actualizar un campo con nullvalor, primero configúrelo en un valor no nulo, como''

Por ejemplo:

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

Esa es una simple

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
soulmerge
fuente
Corrija hasta la cláusula WHERE, donde solo concatene la prueba con las columnas que ya comienzan con la prueba. Entonces: foo -> footo de foo -> footfo testfoo -> testtestfoo
Jukka Dahlbom
0
  • ACTUALIZAR table_name SET Column1 = CONCAT ('newtring', table_name.Column1) donde 1
  • ACTUALIZAR table_name SET Column1 = CONCAT ('newtring', table_name.Column2) donde 1
  • ACTUALIZAR table_name SET Column1 = CONCAT ('newtring', table_name.Column2, 'newtring2') donde 1

Podemos concat la misma columna o también otra columna de la tabla.

user3419778
fuente