0号码尚未输入mysql数据库

时间:2011-02-21 03:41:01

标签: php mysql

我编写了一个脚本,用于将数据从csv文件上传到mysql数据库中的列pin_code。 pin_code设置为varchar,并且在插入db时,任何值之前的数字0都没有输入db。

例如012345,输入为12345.pin_code strlen为6位数。如果strlen是5,那么在这个列前面添加0的任何mysql语句都会对这些列进行更改吗?该数据库现已上线。感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

如果您想在PHP中使用前导零,则可以使用sprintf()

$number = sprintf('%06d', $number);

I blogged about this once :)

答案 1 :(得分:2)

另一个MySQL解决方案:对可变长度字符串使用LPAD

mysql> SELECT LPAD('123', 6, '0');
+---------------------+
| LPAD('123', 6, '0') |
+---------------------+
| 000123              |
+---------------------+
1 row in set (0.00 sec)


mysql> select LPAD('12345', 6, '0');
+-----------------------+
| LPAD('12345', 6, '0') |
+-----------------------+
| 012345                |
+-----------------------+
1 row in set (0.00 sec)

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lpad

答案 2 :(得分:1)

这样的东西
UPDATE table_name SET pin_code=CONCAT('0',pin_code) WHERE LENGTH(pin_code)=5

答案 3 :(得分:1)

当您将数字读入PHP时,您的PHP脚本很可能会剥离前面的0。这是标准(和皇室)的痛苦。至少就我所知,你几乎没有什么可以做的,就是停止PHP解释一个只包含数字作为数字的字符串并剥离不重要的数字。

您检查strlen并填写它的建议肯定是最快的解决方法。