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

Sådan tilføjes ledende nuller til et tal i MySQL

Når du arbejder med MySQL, kan du af og til støde på situationer, hvor du skal udfylde en masse tal med indledende nuller.

Måske har du et krav om, at alle tal skal have tre cifre, men i de data, du har fået leveret, spænder tallene fra et enkelt ciffer til to og måske tre cifre. Dit krav kan være at udfylde alle tal med foranstillede nuller, men kun for at kompensere for eventuelle mangler i det trecifrede krav.

LPAD() funktion gør præcis, hvad du ønsker i dette scenarie.

LPAD()-funktionen

Strengt taget er LPAD() funktion udfylder en streng med en anden streng. Det fungerer sådan her:

LPAD(str,len,padstr)

Hvor str er strengen, der skal udfyldes, len er den nødvendige længde af slutresultatet, og padstr er den streng, der vil blive brugt til at polstre den anden streng.

Eksempel

Her er et eksempel på udfyldning af et enkeltcifret tal med to nuller:

SELECT LPAD(7, 3, 0);

Resultat:

+---------------+
| LPAD(7, 3, 0) |
+---------------+
| 007           |
+---------------+

I dette tilfælde blev to indledende nuller tilføjet, fordi vi specificerede 3 som den nødvendige længde.

Så hvis vi starter med et tocifret tal, tilføjes kun ét nul:

SELECT LPAD(17, 3, 0);

Resultat:

+----------------+
| LPAD(17, 3, 0) |
+----------------+
| 017            |
+----------------+

Ikke-nul værdier

LPAD() funktion er ikke begrænset til kun nuller. Som nævnt kan den bruges til at polstre enhver streng med enhver anden streng. Så du kan udfylde et tal med indledende 1'ere, eller indledende bogstaver eller andre symboler, hvis det kræves.

SELECT LPAD(7, 10, '.');

Resultat:

+------------------+
| LPAD(7, 10, '.') |
+------------------+
| .........7       |
+------------------+

Og fordi det faktisk er en strengfunktion, kan den bruges til at udfylde enhver ikke-numerisk streng. Og det er ikke begrænset til kun ét udfyldningstegn - det kan udfyldes med flere tegn, hvis det er nødvendigt:

SELECT LPAD('Cat', 21, 'Meow! ') AS Result;

Resultat:

+-----------------------+
| Result                |
+-----------------------+
| Meow! Meow! Meow! Cat |
+-----------------------+


  1. Hvordan sikkerhedskopierer og gendanner man en database som en kopi på den samme server?

  2. Betydningen af ​​basislinjer

  3. Håndtering af MySQL langvarige forespørgsler

  4. mysql dynamisk forespørgsel i lagret procedure