¿Cómo puedo agregar una cadena a un campo existente en MySQL?

101

Quiero actualizar el código en todo mi registro a lo que son actualmente más _standard alguna idea?

Entonces, por ejemplo, si los códigos son apple_1 y apple_2, necesito que sean apple_1_standard y apple_2_standard

Antes de:

id   code
------------
1    apple_1 
1    apple_2

Consulta de Psuedo:

update categories set code = code + "_standard" where id = 1;

Resultado Esperado:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard
Matt Elhotiby
fuente

Respuestas:

224

Necesita usar la CONCAT()función en MySQL para la concatenación de cadenas:

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;
Daniel Vassallo
fuente
60
En caso de que alguien se encuentre con el mismo problema que yo: Si el campo codees NULL por defecto, debe usar: UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;De lo contrario, la concat siempre resultará en NULL.
Kai Noack
3
Alternativamente, puede usar CONCAT_WS que omite los valores NULL. Por ejemplo, SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); da "Nombre, apellido"
BarneySchmale
@Daniel ¿Qué tal actualizar la respuesta de acuerdo con los comentarios anteriores?
kiedysktos
pregunta especial / separada para un posible caso nulo: stackoverflow.com/questions/14020867/…
qdinar
0

Actualice el campo de la imagen para agregar la URL completa, ignorando los campos nulos:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
gus
fuente