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

gus*_*gus 2 mysql

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

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

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

非常感谢

小智 6

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

UPDATE tableName SET fieldName = right(concat('0000',fieldName), 4) WHERE length(fieldName) < 4
Run Code Online (Sandbox Code Playgroud)


Dan*_*ane 6

LPAD功能是你在找什么.您可以在查询中使用它来动态填充数字.

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

如果您更喜欢在脚本端执行此操作,str_pad将在php中执行相同操作.