我的数据库中有数千个条目,每条条目有9位或更少。我想进行批量更新,查找数字小于9的所有行,并添加0' s使它们等于9位。
例如,我的表格如下:
ID | Number
---------------
0 | 489379
1 | 854744329
2 | 56456669
我想让它看起来像:
ID | Number
---------------
0 | 000489379
1 | 854744329
2 | 056456669
如何使用MySQL查询执行此操作?
答案 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语句中为列的每个可能长度都有一个元素。手册的种类,可能更容易,但这是一种可能性。