Autoriser le nombre à démarrer avec ZERO lorsqu'il est stocké dans le champ entier mysql
J'ai besoin de stocker des numéros de téléphone commençant par 0, mais chaque fois que j'essaie de les stocker dans une table MySql de départ ZÉRO est supprimé car pas de numéro de commencer avec Zéro en fait.
Comment résoudre ce problème? Dois-je modifier le type de champ Integer à un autre type?
source d'informationauteur M.E
Vous devez vous connecter pour publier un commentaire.
modifier le type de données à unsigned-zerofill ne tout ce que vous utilisez, float, int, decimal(6,2)... seulement modifier le champ de unsigned-zerofill ne
Numéros de téléphone ne sont pas vraiment des numéros dans le sens où ils ne sont pas ordinale. Ils sont juste des personnages - ils fait qu'ils sont des nombres est accessoire.
De les stocker dans un varchar et passer 😀
Les numéros de téléphone peuvent contenir d'autres symboles pour des raisons de lisibilité aussi... une regexp pour un numéro de téléphone ressemble à quelque chose comme
[0-9+-()*#]+
. Si vous avez besoin d'utiliser un champ de texte pour les numéros de téléphone, en plus de la validation de certains.Vous pouvez utiliser le type de données varchar pour les résoudre.
Numéros de téléphone ne sont pas des entiers et vous ne pourrez vous retrouver avec des problèmes en essayant de les stocker sous forme de nombres entiers, de stocker des chaînes de caractères à la place.
Oui - champs numériques stockent uniquement les valeurs numériques, et non pas la mise en forme de ceux (dont paddin avec des zéros à gauche). Vous devez
modifier le type de champ integer varchar ou char (si # de chiffres est TOUJOURS le même).
Store le nombre as integer, MAIS la faire précéder de 0 dans la couche de présentation en tant que de besoin.
Vous pouvez également placer le numéro que vous voulez d'un zéro d'une fonction. J'ai fait cette fonction pour ajouter de plomb zéro si la "chaîne" est inférieure à 2 chiffres (il a été utilisé pour ajouter de plomb zéros à des heures et minutes)
Si vous avez le dire, un numéro 2 et que vous voulez afficher dans la 02, vous feriez leadZero(2);
Cela ne fera qu'ajouter un zéro SI le nombre est inférieur à 2 chiffres ! Par exemple leadZero(14); sera de retour le 14