MySQL附加,前缀一系列数字为0

时间:2009-08-02 16:03:38

标签: mysql

我有几千行,其中包含3位数字,以100开头,范围为199,我需要以0为前缀。还有数以千计的其他数字4位数字,我不想变化

我需要找到该范围内的所有3位数字,并且前缀仅为100-199范围内的0和0,因为它们是4位数,例如100> 0100,104> 0104等。 这些数字也可以是步骤,例如110接下来是124。

有没有办法可以用SQL做到这一点?因为我不想手动改变这些!

非常感谢

2 个答案:

答案 0 :(得分:6)

最好使用编程语言。也就是说,这是一个SQL查询,它将更新所有现有的数字:

UPDATE tableName SET fieldName = right(concat('0000',fieldName), 4) WHERE length(fieldName) < 4

答案 1 :(得分:6)

您正在寻找LPAD功能。您可以在查询中使用它来动态填充数字。

SELECT LPAD(CONVERT(num AS CHAR), 4, '0') FROM tbl WHERE num > 99 AND num < 200

如果您希望在脚本方面执行此操作,str_pad将在php中执行相同的操作。