Mysql
 sql >> Database >  >> RDS >> Mysql

Come riempire una stringa con caratteri iniziali/finali in MySQL – LPAD(), RPAD()

A volte è necessario riempire una stringa con spazi. O forse lo riempirai con un altro personaggio. A volte è necessario riempirlo a sinistra. Altre volte è necessario imbottirlo a destra. O forse devi imbottirlo su entrambi i lati.

Tutto quanto sopra può essere fatto in MySQL usando LPAD() e/o RPAD() funzioni di stringa.

Sintassi

La sintassi di ciascuna di queste funzioni è la seguente:

LPAD(str,len,padstr)
RPAD(str,len,padstr)

Dove str è la stringa che deve essere riempita, len è la lunghezza desiderata della stringa in caratteri dopo l'applicazione di tutto il riempimento e padstr è la stringa con cui riempirlo.

Esempio – LPAD()

Ecco un esempio di riempimento del lato sinistro di una stringa:

SELECT LPAD('Cat', 6, '*') AS Result;

Risultato:

+--------+
| Result |
+--------+
| ***Cat |
+--------+

In questo esempio riempiamo la stringa con il carattere asterisco (* ). Specifichiamo anche 6 , il che significa che l'intera stringa deve essere lunga 6 caratteri dopo che è stata applicata tutta la spaziatura interna.

Quindi se cambiamo il 6 per dire, 10 , ecco cosa succede:

SELECT LPAD('Cat', 10, '*') AS Result;

Risultato:

+------------+
| Result     |
+------------+
| *******Cat |
+------------+

Esempio – RPAD()

Il RPAD() la funzione funziona esattamente come LPAD() , con l'eccezione che aggiunge i caratteri a destra lato della stringa:

SELECT RPAD('Cat', 6, '*') AS Result;

Risultato:

+--------+
| Result |
+--------+
| Cat*** |
+--------+

Esempio:entrambi

È possibile utilizzare entrambe le funzioni insieme per riempire una stringa su entrambi i lati. Per fare ciò, passa semplicemente una funzione all'altra come argomento.

In questo modo:

SELECT LPAD(RPAD('Cat', 6, '*'), 9, '*') AS Result;

Risultato:

+-----------+
| Result    |
+-----------+
| ***Cat*** |
+-----------+

Più caratteri

Non sei limitato a un solo personaggio. Puoi riempire una stringa con qualsiasi numero di caratteri. Ecco un esempio:

SELECT RPAD('She Loves Me ', 30, 'Yeah! ') AS Result;

Risultato:

+--------------------------------+
| Result                         |
+--------------------------------+
| She Loves Me Yeah! Yeah! Yeah! |
+--------------------------------+