Разрешить номер для начала с ZERO при сохранении в поле integer mysql

Мне нужно сохранить номера телефонов, начиная с 0, но всякий раз, когда я пытаюсь сохранить это в таблице MySql, стартовый ZERO удаляется, потому что на самом деле число начинается с нуля.

Как решить эту проблему? Мне нужно изменить тип поля из Integer на другой тип?

Ответ 1

измените тип данных на unsigned-zerofill все, что вы используете, float, int, decimal (6,2)... только отредактируйте поле unsigned-zerofill

Ответ 2

Номера телефонов на самом деле не являются номерами в том смысле, что они не являются порядковыми. Они просто персонажи - они факт, что они цифры, случайны.

Храните их в varchar и двигайтесь дальше: D

Ответ 3

Номера телефонов могут содержать и другие символы для читаемости... regexp для номера телефона выглядит примерно как [0-9+-()*#]+. Поэтому вам нужно использовать текстовое поле для телефонных номеров, а также некоторую проверку.

Ответ 4

Вы можете использовать тип данных как varchar для решения этой проблемы.

Ответ 5

Номера телефонов не являются целыми числами, и у вас будут проблемы с попыткой сохранить их как целые числа, вместо этого сохраните их как строки.

Ответ 6

Да - числовые поля сохраняют только числовые значения, а не форматирование тех, которые имеют paddin с ведущими нулями. Вы должны либо

  • измените тип поля с целого на varchar или char (если # цифр ВСЕГДА то же самое).

  • Сохраните номер как целое, но при необходимости добавьте 0 в свой слой презентации.

Ответ 7

Вы можете также обернуть нужный номер с нулевым номером с помощью функции. Я сделал эту функцию, чтобы добавить нулевой вывод, если "строка" меньше 2 цифр (она была использована для добавления нулевых чисел до часов и минут).

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

}

Если вы говорите, номер 2, который вы хотите вывести как 02, вы бы сделали leadZero (2);

Это добавит только ноль, если число меньше двух цифр! Например, leadZero (14); вернет 14