有没有相当于sprintf的MySQL?

Dis*_*oat 19 mysql printf

我的表中有一个INT字段,我想选择它作为零填充字符串.因此,例如,8将出现008,23出现023,依此类推.这在MySQL查询中是否可行?

irc*_*ell 30

你正在寻找这个LPAD功能:

SELECT LPAD(23, 3, '0'); -- '023'
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@Brad在评论中指出的那样,您还可以使用ZEROFILL定义列:

`foo` INT(3) ZEROFILL
Run Code Online (Sandbox Code Playgroud)

这将始终产生至少3位数字(它将零填充数字少于3位数,并且不会影响更多数字).如果你总是需要这样的数字(而不仅仅是在一个查询中),它是有用的...

  • 作为这个答案的替代(并根据您的目的),您可以将ZEROFILL属性添加到列中[[请参阅MySQL数字类型](http://dev.mysql.com/doc/refman/5.0/en/numeric-type -overview.html)) (3认同)