以特定格式存储整数但被视为整数

时间:2013-11-12 09:47:51

标签: mysql

是否可以在MySQL中以特定格式存储整数。例如,我想要实现的是以特定格式存储主键(应用了自动增量的整数),即010203等。目前主键是生成并以1,2,3等格式存储。

我目前正在做的实现此格式化的方法是从数据库中获取这些数值并根据需要对其进行格式化。但我想知道是否有任何内置功能可以帮助我实现这一目标。有没有?

2 个答案:

答案 0 :(得分:1)

GUI /程序应该注意格式化,因此根据格式选择数据类型是一种不好的做法。

我建议的最好方法是使用这样的命令来获得所需的格式

select to_char(id,'0000') from yourtable

这样一来当你读到id列时你会得到固定的4位字符串,稍后在你的程序中你可以做一个显式或隐式转换,如果需要将它改回数字,或者让它作为它如果你想把它作为字符串。

答案 1 :(得分:0)

数字不以人类可读的格式存储。那将是非常低效的。数字以内部格式存储(可能是简单的二进制补码二进制),然后转换为十进制(或任何你选择的)查询结果。

使用the string formatting functions更改此输出;在这种情况下,可能LPAD,利用数字可以隐式转换为查询中的字符串的事实。

SELECT `myField` FROM `myTable`
#
# myField
# -------
#    1
#    2
#    3

SELECT LPAD(`myField`, 2, '0') AS `myField` FROM `myTable`
# 
# myField
# -------
#    01
#    02
#    03