¿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

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;

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;
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.