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! | +--------------------------------+