MySQL ha il CONCAT()
funzione, che consente di concatenare due o più stringhe. La funzione in realtà consente uno o più argomenti, ma il suo utilizzo principale è concatenare due o più stringhe.
In MySQL (e in qualsiasi ambiente di programmazione per computer), la concatenazione di stringhe è l'operazione di unione di stringhe di caratteri end-to-end.
Ecco un esempio:
SELECT CONCAT('Homer', ' ', 'Simpson') AS 'Full Name';
Risultato:
+---------------+ | Full Name | +---------------+ | Homer Simpson | +---------------+
Nota che in realtà ho concatenato 3 stringhe qui. Ho concatenato il nome, il cognome, più uno spazio.
Se non avessi aggiunto lo spazio, sarebbe stato così:
SELECT CONCAT('Homer', 'Simpson') AS 'Full Name';
Risultato:
+--------------+ | Full Name | +--------------+ | HomerSimpson | +--------------+
Quale potrebbe essere o meno il risultato che stai cercando.
Quindi, se lo applichiamo a un database, la query potrebbe essere simile a questa:
SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name' FROM Individuals WHERE IndividualId = '1';
Risultato:
+---------------+ | Full Name | +---------------+ | Homer Simpson | +---------------+
Se stai concatenando più di due stringhe e hai bisogno di uno spazio (o di un altro separatore), considera l'utilizzo di CONCAT_WS()
funzione. Ciò consente di specificare un separatore da utilizzare tra ciascuna stringa. Devi solo specificare il separatore una volta e viene utilizzato su ogni stringa concatenata, risparmiandoti quindi di doverlo riscrivere tra ogni stringa.
Argomenti NULL
Il CONCAT()
la funzione restituisce NULL
se un argomento è NULL
.
Esempio:
SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';
Risultato:
+-----------+ | Full Name | +-----------+ | NULL | +-----------+
Stringhe binarie vs stringhe non binarie
La documentazione MySQL afferma:
Se tutti gli argomenti sono stringhe non binarie, il risultato è una stringa non binaria. Se gli argomenti includono stringhe binarie, il risultato è una stringa binaria. Un argomento numerico viene convertito nella sua forma di stringa non binaria equivalente.