【发布时间】:2011-02-16 16:33:12
【问题描述】:
我需要存储以 0 开头的电话号码,但每当我尝试将其存储在 MySql 表中时,都会删除起始零,因为实际上没有数字以零开头。
如何解决这个问题?我需要将字段类型从 Integer 更改为另一种类型吗?
【问题讨论】:
标签: mysql integer phone-number
我需要存储以 0 开头的电话号码,但每当我尝试将其存储在 MySql 表中时,都会删除起始零,因为实际上没有数字以零开头。
如何解决这个问题?我需要将字段类型从 Integer 更改为另一种类型吗?
【问题讨论】:
标签: mysql integer phone-number
您还可以使用函数将所需的数字用前导零包装起来。如果“字符串”小于 2 位,我使用此函数添加前导零(它用于将前导零添加到小时和分钟)
function leadZero($num) {
if (strlen($num) < 2) {
return "0" . $num;
} else {
return $num;
}
}
如果您说要输出为 02 的数字 2,您可以执行 leadZero(2);
如果数字长度小于 2 位,这只会添加一个零!例如铅零(14);将返回 14
【讨论】:
将数据类型更改为 unsigned-zerofill 无论您使用什么,float、int、decimal(6,2)... 仅将字段编辑为 unsigned-zerofill
【讨论】:
是的 - 数字字段只存储数值,而不是那些的格式(带有前导零的 paddin 是)。你应该
将字段类型从整数更改为 varchar 或 char(如果位数始终相同)。
将数字存储为整数,但根据需要在表示层中添加 0。
【讨论】:
为了便于阅读,电话号码也可以包含其他符号...电话号码的正则表达式类似于[0-9+-()*#]+。因此,您需要为电话号码使用文本字段,并进行一些验证。
【讨论】:
[0-9 +-()*#x.,/]+ 接近了。
电话号码不是真正的数字,因为它们不是序数。它们只是字符——它们是数字的事实是偶然的。
将它们存储在 varchar 中并继续:D
【讨论】:
电话号码不是整数,您在尝试将它们存储为整数时只会遇到问题,而是将它们存储为字符串。
【讨论】:
您可以使用数据类型作为 varchar 来解决这个问题。
【讨论】: