Come posso aggiungere una stringa a un campo esistente in MySQL?


101

Voglio aggiornare il codice su tutti i miei record a quello che sono attualmente più _standard delle idee?

Quindi, ad esempio, se i codici sono apple_1 e apple_2 ho bisogno che siano apple_1_standard e apple_2_standard

Prima:

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

Domanda Psuedo:

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

Risultato atteso:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard

Risposte:


224

È necessario utilizzare la CONCAT()funzione in MySQL per la concatenazione di stringhe:

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;

60
Nel caso in cui qualcuno si imbatta nello stesso problema che ho fatto io: se il campo codeè NULL per impostazione predefinita, devi usare: UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;Altrimenti il ​​concat risulterà sempre NULL.
Kai Noack

3
In alternativa puoi usare CONCAT_WS che salta i valori NULL. Ad esempio, SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); fornisce "Nome, cognome"
BarneySchmale

@Daniel Che ne dici di aggiornare la risposta in base ai commenti sopra?
kiedysktos

speciale / domanda separata per caso possibile nullo: stackoverflow.com/questions/14020867/...
qdinar

0

Aggiorna il campo dell'immagine per aggiungere l'URL completo, ignorando i campi nulli:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.