Позвольте числу запускаться с НУЛЯ при хранении в mysql целочисленном поле

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

Как решить эту проблему? Я должен изменить тип поля от Целого числа до другого типа?

12
задан Vadim Kotov 10 October 2017 в 11:06
поделиться

5 ответов

Телефонные номера на самом деле не являются числами в том смысле, что они не являются порядковыми. Это просто символы - тот факт, что они являются номерами, случаен.

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

7
ответ дан 2 December 2019 в 04:02
поделиться

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

3
ответ дан 2 December 2019 в 04:02
поделиться

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

5
ответ дан 2 December 2019 в 04:02
поделиться

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

  1. изменить тип поля с integer на varchar или char (если количество цифр ВСЕГДА одинаково).

  2. Хранить число как целое число, НО добавлять 0 в слое представления по мере необходимости.

1
ответ дан 2 December 2019 в 04:02
поделиться

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

3
ответ дан 2 December 2019 в 04:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: