我的数据库中有数千个条目,每个条目的长度不超过9位。我想做一个大规模更新,找到所有数字小于9的行,并加上0,使它们等于9个数字。
例如,我的表看起来像:
ID | Number
---------------
0 | 489379
1 | 854744329
2 | 56456669
我想让它看起来像:
ID | Number
---------------
0 | 000489379
1 | 854744329
2 | 056456669
我如何用MySQL查询做到这一点?
lpad
函数应该可以解决您的问题:
SELECT `id`, LPAD(`Number`, 9, '0')
FROM mytable
要回答评论中的问题,这也可以应用在update
语句中:
UPDATE mytable
SET `Number` = LPAD(`Number`, 9, '0')
WHERE LENGTH(`Number`) < 9
使用case语句
update table
set column1 = case when length(column1) = 4 then concatenate('00000', column1)....
在case语句中对列的每个可能长度都有一个元素。有点像手册,可能有更简单的方法,但这是一种可能性。