是否可以在 MySQL 中以特定格式存储整数。例如,我想要实现的是以特定格式存储主键(应用了自动增量的整数),即01
,02
等03
。目前主键以 1、2、3 等格式生成和存储.
我目前为实现这种格式化所做的工作是从数据库中获取这些数值并根据需要对其进行格式化。但我想知道是否有任何内置功能可以帮助我实现这一目标。有没有?
是否可以在 MySQL 中以特定格式存储整数。例如,我想要实现的是以特定格式存储主键(应用了自动增量的整数),即01
,02
等03
。目前主键以 1、2、3 等格式生成和存储.
我目前为实现这种格式化所做的工作是从数据库中获取这些数值并根据需要对其进行格式化。但我想知道是否有任何内置功能可以帮助我实现这一目标。有没有?
GUI/程序应该注意格式,因此根据格式选择数据类型是一种不好的做法。
我可以建议的最好方法是使用这样的命令来获得所需的格式
select to_char(id,'0000') from yourtable
这样,当您阅读 id 列时,您将始终以固定的 4 位字符串获得它,稍后在您的程序中,如果需要将其更改回数字,您可以进行显式或隐式转换,或者如果您保持原样想把它作为字符串。
数字不是以人类可读的格式存储的。那将是非常低效的。数字以内部格式(可能是简单的二进制补码)存储,然后转换为十进制(或任何您选择的)以获取查询结果。
使用字符串格式化函数来改变这个输出;在这种情况下,可能会LPAD
利用数字可以在查询中隐式转换为字符串的事实。
SELECT `myField` FROM `myTable`
#
# myField
# -------
# 1
# 2
# 3
SELECT LPAD(`myField`, 2, '0') AS `myField` FROM `myTable`
#
# myField
# -------
# 01
# 02
# 03