1

例如,我如何告诉 phpmyadmin,MySQL 允许电话号码前的第一个 0?(不是零填充)

  • 当我尝试在它前面放一个零时(在 phpmyadmin 中),它会自动删除它。
  • 当我提交我的表单编号时,在编号前面指定了 0,它不会添加它。

有解决方法吗?

4

4 回答 4

12

mysql 中的INT数据类型只存储一个整数。正如您对任何编程语言中的整数数据类型所期望的那样,数据库引擎会删除所有前导零并舍入所有小数点,使其不适合存储电话号码。

如果电话号码中的位数始终相同,请改用 datatype CHAR(length),或者如果不使用 datatype VARCHAR(max_length)。这些将存储输入的确切值而不是整数值。

于 2013-08-16T16:53:20.263 回答
1

存储前面可能有 0 的数字时,请使用VARCHARCHAR数据类型。电话号码、邮政编码、产品 SKU 是应始终使用非数字变量类型的主要示例。

于 2013-08-16T17:04:23.370 回答
1

使用 mysql 和 php 时不要以这种方式放置您的字符串:

mysql_query("UPDATE bids SET time_off = ".$editend." WHERE id = '" . $editbid_id . "'");

var 周围没有单引号(这是一个字符串编号)。做这个:

mysql_query("UPDATE bids SET time_off = '".$editend."' WHERE id = '" . $editbid_id . "'");

换句话说,请确保您将其放入数据库的 var 周围有引号,否则即使您的字段是字符串值,它也会将其视为数值并删除前导 0。

于 2019-05-19T10:08:01.247 回答
0

或者,您可以将 PHONE 保留为“int”格式,并在选择它时添加前导零。

像这样:

select right('0000000000'+convert(varchar(10), PHONE), 10)

-- 如果您的电话号码多于 10 位,则进行相应调整

于 2013-08-16T16:54:31.093 回答