将数字存储为varchar可以吗?
之间有什么区别
int 123456789012
和varchar 123456789012
?
答案 0 :(得分:35)
不,这几乎总是一个坏主意。
答案 1 :(得分:3)
您可以将前导零存储到varchar,而不能使用整数列(例如,123
和0000123
之间可能存在差异)。例如某些国家/地区的邮政编码。但是,如果您需要这样做,那么您实际上正在处理应该具有varchar列的文本信息。例如,电话号码或邮政编码肯定应该转到varchar列。
否则,如果您使用的数据如数字(将它们加在一起,比较它们等),那么您应该将它放入整数列。它们占用的空间更少,使用起来更快。
答案 2 :(得分:1)
我认为可以将数字存储为varchar,只要您不想使用它进行计算。
例如,电话号码或邮政编码最好存储在varchar字段中,因为您可以格式化它们。
答案 3 :(得分:0)
您将无法使用声明为varchar的列进行计算,因此应使用数字类型。既然你的SQL查询仍然是一个字符串,MySQL会为你做所有的转换(当然,这并不意味着你不需要验证用户提供的值)。