Le funzioni CONCAT e CONCAT_WS

Gli argomenti di questa pagina

  • Descrizione delle due funzioni
  • Le sintassi
  • Esempi con la funzione CONCAT()
  • Esempi con la funzione CONCAT_WS()

Descrizione delle due funzioni

In MYSQL, come in altri linguaggi, è possibile concatenare più stringhe con o senza un separatore fisso.
La funzione MySQL CONCAT_WS () viene utilizzata per unire due o più stringhe con separatore. Viene aggiunto il separatore specificato nel primo argomento tra due o più stringhe. Il separatore stesso generalmente è una stringa.
La funzione MySQL CONCAT () viene utilizzata per concatenare semplicemente due o più stringhe.

Le sintassi

CONCAT_WS (separator, string1, string2,…)
CONCAT (string1, string2,…)

con la sintassi usata per la funzione CONCAT_WS() usiamo un separatore fisso per concatenare le stringhe dei vari campi
con la sintassi usata per la funzione CONCAT per ogni stringa possiamo usare o no diversi separatori

Quando le due funzioni vengono usate nella clausola WHERE di una Query, si ottiene una stringa unica che contiene tutti i caratteri del primo campo, il carattere separatore se c'è e tutti i caratteri del secondo campo. Di conseguenza è possibile usare su questa stringa la clausola WHERE con tutte le sue opzioni.

Esempi con la funzione CONCAT()

Concatenare il cognome col nome usando un serparatore arbitrario

esempio 1
1
2
3
4
5
<?php
$Query 
"SELECT CONCAT( cognome , ' - ', nome ) AS nominativo, indirizzo
FROM sql_rubrica 
"
;
?>
101 record trovati
15 record visualizzati
nominativo indirizzo
Migliavacca - Luigi VIA P. FIMIANI TRIVIO
Rizzi - Carlo VIA SABIN, 34/2
Liberali - Franca VIA DEL TUSCOLANO, 1
Di Maggio - Mario TERMINAL CONTENITORI MOLO VII
Scicchitano - Andrea VIA SABIN, 34/2
Edelvisi - Maurizio VIA MATTEO RICCI, 12
Gerardini - Silvano Z.I SAMBUCETO
Pasotti - Alessio VIA SABIN, 34/2
Calvi - Giovanni VIA SABIN, 34/2
Poggi - Giuseppe VIA SABIN, 34/2
Curti - Oreste STRADA MARCHESANE, 43_4
Borsotti - Mirella VIA DEL TUSCOLANO, 1
Franchinotti - Anna VIA BREDINA, 6
Pischedda - Giovanni VIA MATTEO RICCI, 12
Maini - Marilena MACRON TICHON STREET, 27
... ...

Concatenazione di alcune costanti o variabili senza collegarsi ad una tabella

esempio 2 e 3
1
2
3
4
5
6
7
8
<?php
$string1 
"Roma";
$string2 "città";
$Query "SELECT CONCAT('" $string1 "', ' è una ', '" $string2 "') AS UnaFrase 
"
;
$Query1 "SELECT CONCAT('Il cane', ' è un ', 'quadrupede') AS UnaFrase 
"
;
?>
1 record letti
UnaFrase
Roma è una città
1 record letti
UnaFrase
Il cane è un quadrupede

Questa è più difficile: Uso della concatenazione nella clausola WHERE. Per soddisfare questa richiesta è necessario rendere caseinsensitive la funzione LIKE().

Mostra i cognomi che finiscono per la lettera 'o' ed iniziano con la 'A' e concatenali

esempio 4
1
2
3
4
5
6
<?php
$Query 
"SELECT CONCAT( cognome, ' ', nome ) AS nomi
FROM sql_rubrica
WHERE CONCAT( cognome, ' ', nome ) LIKE BINARY '%o_An%'
"
;
?>
4 record letti
nomi
Scicchitano Andrea
Dionisio Andrea
Broccardo Andrea
Querio Angela

Esempi con la funzione CONCAT_WS()

Eseguire due concatenazioni: la prima sui campi cognome e nome, l'altra sui campi citta, prov e cap

esempio 5
1
2
3
4
5
6
<?php
$Query 
"SELECT CONCAT_WS( ' ', cognome , nome ) AS Nominativo, 
CONCAT_WS( ' ', citta , prov , cap ) AS domicilio 
FROM sql_rubrica 
"
;
?>
101 record trovati
15 record visualizzati
Nominativo domicilio
Migliavacca Luigi Varena AE 35031
Rizzi Carlo Varena AE 35031
Liberali Franca Abbadia Lariana AB 67030
Di Maggio Mario Ville di Fano RF 51021
Scicchitano Andrea Ville di Fano RF 51021
Edelvisi Maurizio Ville di Fano RF 51021
Gerardini Silvano Ville di Fano RF 51021
Pasotti Alessio Correzzana FS 22050
Calvi Giovanni Marsiliana AB 53021
Poggi Giuseppe Abbadia Lariana AB 67030
Curti Oreste Ville di Fano RF 51021
Borsotti Mirella Ville di Fano RF 51021
Franchinotti Anna Abbadia Lariana AB 67030
Pischedda Giovanni Falconara Alta FS 22059
Maini Marilena Borgo S. Dalmazzo BO 57020
... ...

Usare la concatenazione nella clausola WHERE: il confronto avviene sulla città e provincia.

esempio 6
1
2
3
4
5
6
<?php
$Query 
"SELECT cognome , nome , citta
FROM sql_rubrica
WHERE CONCAT_WS( ' ', citta , prov ) = 'Agropoli DE' 
"
;
?>
9 record trovati
9 record visualizzati
cognome nome citta
Zarbo Veriano Agropoli
D'Agate Federica Agropoli
Clotilde Marinella Agropoli
Biancarosa Francesca Agropoli
Burranca Cristian Agropoli
Serrone Diamora Agropoli
Caldiero Giuseppina Agropoli
Lomo Dalia Agropoli
Zuna Clotilde Agropoli

Ancora una concatenazione nella clausola WHERE usando l'istruzione LIKE per cercare un cognome che finisce con 'i' ed un nome che inizia con 'A'

esempio 7
1
2
3
4
5
6
<?php
$Query 
"SELECT cognome , nome , citta
FROM sql_rubrica
WHERE CONCAT_WS( ' ', cognome, nome ) LIKE '%i A%'
"
;
?>
7 record trovati
7 record visualizzati
cognome nome citta
Pasotti Alessio Correzzana
Franchinotti Anna Abbadia Lariana
Boscati Andrea Ville di Fano
Tommarelli Angelo Castel Vittorio
Stefanini Aldo Bevagna
Torricelli Andrea Giusvalla
Forlini Andrea Giusvalla

Concatenazione di alcune costanti o variabili senza collegarsi ad una tabella usando un separatore predefinito

esempio 8 e 9
1
2
3
4
<?php
$Query 
"SELECT CONCAT_WS( ' ', 'Giorgio', 'Giovanni', 'Pasquale' ) AS nomi
"
;
?>
1 record letti
nomi
Giorgio Giovanni Pasquale

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum