Home / Database & Server / Database & Server / Concatenare campi in MySQL
Mattepuffo

Concatenare campi in MySQL

Concatenare campi in MySQL

In MySQL è molto facile concatenare più campi.

In genere l'SQL prevede l'uso di || che equivale a OR, ma questo funziona solo è attivato l’SQL MODE PIPES_AS_CONCAT.

Nel caso non fosse attivato otterremo un risultato strano:

mysql> SELECT author_name||"-"||editor_name AS CONC FROM bookv LIMIT 5;
+------+
| CONC |
+------+
|    0 |
|    0 |
|    0 |
|    0 |
|    0 |
+------+

Per ovviare si possono usare le funzioni CONCAT()  e CONCAT_WS().

Ovviamente posiamo concatenare campi di diverso tipo, come un VARCHAR e un DECIMAL.

La sintassi base è:

SELECT CONCAT(campo1, campo2, campo3, ....);

Ovviamente possiamo mettere anche stringhe di separazione.

Vediamo un esempio:

mysql> SELECT CONCAT(author_name, " - ", price) AS conc FROM bookv LIMIT 5;
+----------------------------------------+
| conc                                   |
+----------------------------------------+
| arthur c. clarke - 0.00                |
| arthur c. clarke - 0.00                |
| brinzarea, filip, tosa, bucica - 29.75 |
| alessandro cecchi paone - 8.00         |
| massimo carli - 39.00                  |
+----------------------------------------+

Come vedete ho concatenato un VARCHAR e un DECIMAL seprato da un altro valore in formato stringa.

Infine un esempio con CONCAT_WS (che sta per Concat With Separator):

mysql> SELECT CONCAT_WS(" - ",author_name, price) AS conc FROM bookv LIMIT 5;
+----------------------------------------+
| conc                                   |
+----------------------------------------+
| arthur c. clarke - 0.00                |
| arthur c. clarke - 0.00                |
| brinzarea, filip, tosa, bucica - 29.75 |
| alessandro cecchi paone - 8.00         |
| massimo carli - 39.00                  |
+----------------------------------------+

Il risultato è lo stesso, ma il separatore viene messo come primo valore.