Funzioni UPPER() e LOWER()

Gli argomenti di questa pagina

  • Descrizione delle funzioni UPPER() e LOWER()
  • La sintassi
  • Conclusioni
  • Riflessione personale

Descrizione delle funzioni UPPER() e LOWER()

Le due funzioni sono sinonimi delle funzioni MYSQL UCASE() e LCASE(), quindi si comportano allo stesso modo. La funzione UPPER() ritorna una stringa di lettere maiuscole, e la funzione LOWER() la rende minuscola.

La sintassi

UPPER (string)
LOWER(string)

Non servono altre cose perchè il loro uso è molto semplice. Perciò passiamo subito ad alcuni esempi. In questo primo esempio ci limitiamo ad eseguire il seguente lavoro.

Maiuscolare il cognome e minuscolare il nome

esempio pratico
1
2
3
4
5
6
7
<?php
$Query 
"SELECT cognome, nome, 
UPPER( cognome ) AS upper_cognome, 
LOWER( nome ) AS lower_nome 
FROM sql_rubrica
"
;
?>
101 record trovati
15 record visualizzati
cognome nome upper_cognome lower_nome
Migliavacca Luigi MIGLIAVACCA luigi
Rizzi Carlo RIZZI carlo
Liberali Franca LIBERALI franca
Di Maggio Mario DI MAGGIO mario
Scicchitano Andrea SCICCHITANO andrea
Edelvisi Maurizio EDELVISI maurizio
Gerardini Silvano GERARDINI silvano
Pasotti Alessio PASOTTI alessio
Calvi Giovanni CALVI giovanni
Poggi Giuseppe POGGI giuseppe
Curti Oreste CURTI oreste
Borsotti Mirella BORSOTTI mirella
Franchinotti Anna FRANCHINOTTI anna
Pischedda Giovanni PISCHEDDA giovanni
Maini Marilena MAINI marilena
... ... ... ...

Ora facciamo maiuscolo il primo carattere della stringa e facciamo minuscolo il resto.
Per fare questo:
dividiamo la stringa prendendo solo il primo carattere con LEFT( indirizzo, 1 ) e rendendolo maiuscolo, poi prendiamo il resto della stringa con SUBSTRING( indirizzo, 2 ) e lo rendiamo minuscolo;
alla fine riuniamo le due sottostringhe con CONCAT(..........).

Maiuscolare il primo carattere di una stringa e minuscolare la stringa rimanente

esempio pratico
1
2
3
4
5
6
<?php
$Query 
"SELECT indirizzo, 
CONCAT( UPPER( LEFT( indirizzo, 1 ) ) , LOWER(SUBSTRING( indirizzo, 2 ))) AS nuovo
FROM sql_rubrica
"
;
?>
101 record trovati
15 record visualizzati
indirizzo nuovo
VIA P. FIMIANI TRIVIO Via p. fimiani trivio
VIA SABIN, 34/2 Via sabin, 34/2
VIA DEL TUSCOLANO, 1 Via del tuscolano, 1
TERMINAL CONTENITORI MOLO VII Terminal contenitori molo vii
VIA SABIN, 34/2 Via sabin, 34/2
VIA MATTEO RICCI, 12 Via matteo ricci, 12
Z.I SAMBUCETO Z.i sambuceto
VIA SABIN, 34/2 Via sabin, 34/2
VIA SABIN, 34/2 Via sabin, 34/2
VIA SABIN, 34/2 Via sabin, 34/2
STRADA MARCHESANE, 43_4 Strada marchesane, 43_4
VIA DEL TUSCOLANO, 1 Via del tuscolano, 1
VIA BREDINA, 6 Via bredina, 6
VIA MATTEO RICCI, 12 Via matteo ricci, 12
MACRON TICHON STREET, 27 Macron tichon street, 27
... ...

Conclusioni

Potremmo fare molte altre cose combinando e nidificando varie funzioni MYSQL, ma verrebbero delle Query troppo complesse e poco gestibili come la seguente.

Maiuscolare le due iniziali delle due parti di una via.

esempio complesso
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$Query 
"SELECT indirizzo, 
CONCAT( 
CONCAT( UPPER( LEFT( 
IF( LOCATE( ' ', indirizzo ) >0, SUBSTRING( indirizzo, 1, LOCATE( ' ', indirizzo ) -1 ) , indirizzo ), 1 ) ) , 
LOWER(SUBSTRING( 
IF( LOCATE( ' ', indirizzo ) >0, SUBSTRING( indirizzo, 1, LOCATE( ' ', indirizzo ) -1 ) , indirizzo ), 2 ))), 
' ', 
CONCAT( UPPER( LEFT( 
IF( LOCATE( ' ', indirizzo ) >0, SUBSTRING( indirizzo, LOCATE( ' ', indirizzo ) +1 ) , NULL ), 1 ) ) , 
LOWER(SUBSTRING( 
IF( LOCATE( ' ', indirizzo ) >0, SUBSTRING( indirizzo, LOCATE( ' ', indirizzo ) +1 ) , NULL ), 2 )))) 
AS nuovo 
FROM sql_rubrica
"
;
?>
101 record trovati
15 record visualizzati
indirizzo nuovo
VIA P. FIMIANI TRIVIO Via P. fimiani trivio
VIA SABIN, 34/2 Via Sabin, 34/2
VIA DEL TUSCOLANO, 1 Via Del tuscolano, 1
TERMINAL CONTENITORI MOLO VII Terminal Contenitori molo vii
VIA SABIN, 34/2 Via Sabin, 34/2
VIA MATTEO RICCI, 12 Via Matteo ricci, 12
Z.I SAMBUCETO Z.i Sambuceto
VIA SABIN, 34/2 Via Sabin, 34/2
VIA SABIN, 34/2 Via Sabin, 34/2
VIA SABIN, 34/2 Via Sabin, 34/2
STRADA MARCHESANE, 43_4 Strada Marchesane, 43_4
VIA DEL TUSCOLANO, 1 Via Del tuscolano, 1
VIA BREDINA, 6 Via Bredina, 6
VIA MATTEO RICCI, 12 Via Matteo ricci, 12
MACRON TICHON STREET, 27 Macron Tichon street, 27
... ...

Riflessione personale

In questi casi, secondo il mio modesto parere, sarebbe meglio affidarsi al codice ed alle funzioni PHP dove è più semplice gestire problemi così complessi e possiamo concentrarci su Query anche complesse ma che si limitino ad estrarre i dati grezzi.
Se la formattazione dei dati che preleviamo dal DB è semplice, ben vengano le funzioni MYSQL, ma se per formattare un solo campo di una tabella dobbiamo creare Query così mostruose, lasciamo che se ne occupi il PHP.

 

 



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