Quando lavori con MySQL, potresti occasionalmente incontrare situazioni in cui devi riempire un mucchio di numeri con zeri iniziali.
Forse hai il requisito che tutti i numeri abbiano tre cifre, ma nei dati che ti sono stati forniti, i numeri vanno da una singola cifra, a due e forse tre cifre. Il tuo requisito potrebbe essere quello di riempire tutti i numeri con zeri iniziali, ma solo per compensare eventuali carenze nel requisito delle tre cifre.
Il LPAD()
la funzione fa esattamente quello che vuoi in questo scenario.
La funzione LPAD()
A rigor di termini, il LPAD()
la funzione riempie una stringa con un'altra stringa. Funziona così:
LPAD(str,len,padstr)
Dove str
è la stringa da riempire, len
è la lunghezza richiesta del risultato finale e padstr
è la stringa che verrà utilizzata per riempire l'altra stringa.
Esempio
Ecco un esempio di riempimento di un numero a una cifra con due zeri:
SELECT LPAD(7, 3, 0);
Risultato:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
In questo caso sono stati aggiunti due zeri iniziali perché abbiamo specificato 3
come la lunghezza richiesta.
Quindi, se iniziamo con un numero a due cifre, viene aggiunto solo uno zero:
SELECT LPAD(17, 3, 0);
Risultato:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Valori diversi da zero
Il LPAD()
la funzione non è limitata a soli zeri. Come accennato, può essere utilizzato per riempire qualsiasi stringa con qualsiasi altra stringa. Quindi puoi riempire un numero con 1 iniziali, o lettere iniziali o altri simboli, se necessario.
SELECT LPAD(7, 10, '.');
Risultato:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
E poiché in realtà è una funzione di stringa, può essere utilizzata per riempire qualsiasi stringa non numerica. E non è limitato a un solo carattere di riempimento:può essere riempito con più caratteri, se necessario:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Risultato:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+