我编写了一个脚本,用于将数据从csv文件上传到mysql数据库中的列pin_code。 pin_code设置为varchar,并且在插入db时,任何值之前的数字0都没有输入db。
例如012345,输入为12345.pin_code strlen为6位数。如果strlen是5,那么在这个列前面添加0的任何mysql语句都会对这些列进行更改吗?该数据库现已上线。感谢任何帮助。
答案 0 :(得分:2)
答案 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
并填写它的建议肯定是最快的解决方法。