我的表中有一个INT字段,我想选择它作为零填充字符串。例如,8表示008
,23表示023
,依此类推。这在MySQL查询中是否可行?
答案 0 :(得分:28)
您正在寻找LPAD
功能:
SELECT LPAD(23, 3, '0'); -- '023'
修改强>
正如@Brad在评论中指出的那样,您还可以使用ZEROFILL定义列:
`foo` INT(3) ZEROFILL
这将始终产生至少3位数字(它将零填充数字少于3位数,并且不会影响更多数字)。如果您总是需要这样的数字(而不仅仅是在一个查询中),这很有用......
答案 1 :(得分:1)
如果要实现最小数量的填充,而不削减较大数字的结果,则需要使用IF
语句。
以下示例将确保所有ID至少包含三位数字,同时让更大的ID仍未通过。
SELECT IF(id < 100, LPAD(id, 3, 0), id)
答案 2 :(得分:-1)
根据您拥有的mySql版本,您可以定义一个UDF,为您格式化值。见http://dev.mysql.com/doc/refman/5.1/en/adding-functions.html。