我在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获取完整值。
最好的问候。
答案 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)