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

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

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

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

6

Esa es una simple

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.