我如何告诉phpmyadmin,MySQL允许在电话号码前面的第一个0? (不是零填充)
是否有变通方法?
答案 0 :(得分:9)
mysql中的INT
数据类型只存储一个整数。正如您所期望的任何编程语言中的整数数据类型一样,数据库引擎会删除任何前导零并舍入任何小数点,这使得它不适合存储电话号码。
如果电话号码中的位数始终相同,请改为使用数据类型CHAR(length)
,或者如果不使用数据类型VARCHAR(max_length)
。这些将存储输入的确切值而不是整数值。
答案 1 :(得分:1)
存储可能前面有0的数字时,请使用VARCHAR
或CHAR
数据类型。电话号码,邮政编码,产品SKU是您应始终使用非数字变量类型的主要示例。
答案 2 :(得分:0)
或者,您可以将PHONE保留为“int”格式,并在选择时添加前导零。
像这样:
select right('0000000000'+convert(varchar(10), PHONE), 10)
- 如果您的电话号码超过10位,则相应地进行调整
答案 3 :(得分:0)
使用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。