mysql存储+90位数以零开头

时间:2014-01-09 08:56:43

标签: mysql database numbers

我需要在mysqldatabase中存储一个+90位的数字。

我无法弄清楚该表的类型,以及是否应该应用其他属性。

示例号码:00004219087128907490128309172409712089378174801278903710874y8012780731

重要的是,前导零保留在数据库中。

提前致谢!

3 个答案:

答案 0 :(得分:1)

将列数据类型设置为varchar(100)

VARCHAR列中的值是可变长度字符串。长度可以指定为0到65,535之间的值。 VARCHAR的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和使用的字符集

答案 1 :(得分:0)

使用varchar(90)作为该字段的类型。

表定义示例(适用于MySQL):

CREATE TABLE myTable (
  id int auto_increment primary key, 
  my_big_number varchar(90)
);

答案 2 :(得分:0)

您需要varchar数据类型来存储冗长的数字 - 字符串

但是你应该知道SQL语句需要遵循 string 特定的语法。也就是说,用单引号括起任何值,数字,日期或其他值。的 'num or date here' 即可。这样该值被视为字符串

在您的情况下,您似乎没有引号输入000011号码。因此MySQL隐式地将其解释为数字并删除前导零。

mysql> select 000011, '000011';
+--------+--------+
| 000011 | 000011 |
+--------+--------+
|     11 | 000011 |
+--------+--------+
1 row in set (0.00 sec)

关注INSERT示例也应该对您有所帮助。

mysql> insert into vc_num( vn ) values (000011), ( '000011' );
Query OK, 2 rows affected (0.08 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from vc_num;
+--------+
| vn     |
+--------+
| 11     |
| 000011 |
+--------+