MySQL bigint数字 - SQL和R中的不同输出

时间:2017-11-01 11:24:42

标签: mysql r

我在MySQL DB中存储了一个值varchar和bigint:
userID_as_varchar varchar(50)DEFAULT NULL,
userID_as_bigint bigint(20)DEFAULT NULL,

+--------------------+---------------------------+
| userID_as_varchar  | userID_as_bigint          |
+--------------------+---------------------------+
| 917876131364446205 |        917876131364446200 |
+--------------------+---------------------------+

出于任何原因,我无法使用SQL以完全精度查询完整的userID_as_bigint值,但使用R。

行为SQL:
如果我查询数据或投射它,它总是“舍入”值。 在phpMyAdmin中测试并直接在shell中使用sql命令。

行为R:
如果我用R(RMySQL包)查询字段值是否完整917876131364446205

任何人都可以解释这种行为或知道如何使用SQL获取完整值。

最好的问候。

1 个答案:

答案 0 :(得分:1)

不太清楚你的意思,这是一个测试:

create table test(t1 varchar(50), t2 bigint);
Query OK, 0 rows affected (0.03 sec)

mysql> desc test
    -> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| t1    | varchar(50) | YES  |     | NULL    |       |
| t2    | bigint(20)  | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)

mysql> insert into test values('917876131364446205', 917876131364446205);
Query OK, 1 row affected (0.01 sec)

mysql> select * from test;
+--------------------+--------------------+
| t1                 | t2                 |
+--------------------+--------------------+
| 917876131364446205 | 917876131364446205 |
+--------------------+--------------------+
1 row in set (0.00 sec)