MySQL - 将0' s添加到少于9位的数字

时间:2015-06-04 20:42:52

标签: php mysql sql select

我的数据库中有数千个条目,每条条目有9位或更少。我想进行批量更新,查找数字小于9的所有行,并添加0' s使它们等于9位。

例如,我的表格如下:

ID  |  Number  
---------------
0   |  489379
1   |  854744329
2   |  56456669

我想让它看起来像:

ID  |  Number  
---------------
0   |  000489379
1   |  854744329
2   |  056456669

如何使用MySQL查询执行此操作?

2 个答案:

答案 0 :(得分:8)

lpad功能可以解决您的问题:

SELECT `id`, LPAD(`Number`, 9, '0')
FROM   mytable

要回答评论中的问题,这也可以应用于update声明:

UPDATE mytable
SET    `Number` = LPAD(`Number`, 9, '0')
WHERE  LENGTH(`Number`) < 9

答案 1 :(得分:1)

使用案例陈述

update table
set column1 = case when length(column1) = 4 then concatenate('00000', column1)....

在case语句中为列的每个可能长度都有一个元素。手册的种类,可能更容易,但这是一种可能性。