Tillad at nummeret starter med NUL, når der er gemt i en mysql-tal feltet

Jeg har brug for at gemme telefonnumre, der starter med 0, men når jeg forsøger at gemme denne i MySql-tabellen, der starter NUL er fjernet, fordi der ikke mange der starter med Nul faktisk.

Hvordan man kan løse dette problem? Behøver jeg at ændre felttypen fra Integer til en anden type?

OriginalForfatteren M.E | 2010-05-07

7 svar

  1. 19

    ændre datatypen for at unsigned-zerofill uanset hvad du bruger, float, int, decimal(6,2)… kun redigere feltet til unsigned-zerofill

    “unsigned-zerofill” kan vælges under “egenskaber” – kolonnen.

    OriginalForfatteren deepcell

  2. 6

    Telefonnumre, der er ikke rigtig tal i den forstand, at de ikke ordenstal. De er bare tegn – de, at de numre, der er tilfældigt.

    Gemme dem i en varchar og flytte på 😀

    OriginalForfatteren Peter Bailey

  3. 5

    Telefonnumre kan indeholde andre symboler for læsbarhed for… en regexp til et telefonnummer, der ser noget som [0-9+-()*#]+. Så er du nødt til at bruge et tekst-felt til telefon numre, plus nogle validering.

    et par andre formater til at overveje: 555/555-1212, 555.555.1212, 555-555-1212 x123
    Derfor er ‘noget’… at validere telefonnumre, der er vanskelige. Jeg tror [0-9 +-()*#x.,/]+ kommer tæt på.

    OriginalForfatteren Andrew McGregor

  4. 3

    Telefonnumre, der ikke er heltal, og du vil ende med at få problemer med at gemme dem som heltal, gemme dem som en streng i stedet.

    OriginalForfatteren myforwik

  5. 2

    Du kan bruge data type varchar at løse dette.

    OriginalForfatteren Karthik

  6. 1

    Ja – numeriske felter, der kun gemme numeriske værdier, ikke formateringen af dem (som paddin med ledende nuller). Du skal enten

    1. ændre felttypen fra heltal til varchar char eller (hvis # cifre er ALTID det samme).

    2. Gemme nummeret som heltal, MEN tilføjer 0 i din præsentation lag efter behov.

    OriginalForfatteren DVK

  7. -1

    Du kan også wrap det nummer, du ønsker, med et forspring nul med en funktion. Jeg har lavet denne funktion til at tilføje føre nul, hvis den “streng” er mindre end 2 cifre (det blev brugt til at tilføje føre nuller til timer og minutter)

    function leadZero($num) {
        if (strlen($num) < 2) {
            return "0" . $num;
        } else {
            return $num;
        }
    
    }

    Hvis du har at sige, et 2-tal, som du ønsker at output-02, du ville gøre leadZero(2);

    Dette vil kun tilføje et nul, HVIS antallet er mindre end 2 cifre ! For eksempel leadZero(14); vil vende tilbage 14

    OriginalForfatteren brunobliss

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *