如何将前导0添加到mysql中的字符串?

时间:2016-02-15 20:25:47

标签: mysql

我的邮政编码表中有一栏。一些邮政编码从0开始就被截断了。例如,00123显示为123,04567显示为04567。

是否有一个函数可以用来更新列的所有条目,这样如果字符串的长度为3,那么在数字前面会有0个位置,使其长度为5? (即123-> 00123& 4567-> 04567)

4 个答案:

答案 0 :(得分:2)

如果您的列已经是字符串类型,则可以使用LPAD添加主要字符串:

update table set zipcode = LPAD(zipCode, 5, '0');

如果是数值数据类型,请将列更改为使用ZEROFILL,然后执行与上述相同的操作。请注意,这会自动使您的列无符号。

请参阅manual

答案 1 :(得分:1)

将您的邮政编码字段设为文本类型字段之一。问题解决了。当您考虑它时这是有道理的,因为您不太可能对此数据进行任何数学计算。此外,如果您需要使用具有非数字邮政编码值的国家/地区,则此功能更加灵活。

答案 2 :(得分:0)

创建或更改字段以进行zerofill并将长度设置为

CREATE TABLE `abc` (
  `zip` int(5) unsigned zerofill DEFAULT NULL,
  `b` int(11) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

答案 3 :(得分:0)

尝试UPDATE Table SET zipCode = LPAD(zipCode, 5, '0');

这将使用前导零填充您的数据。希望有所帮助!