Mysql 如何与大整数值进行比较?

Mysql 如何与大整数值进行比较?,mysql,Mysql,我在两个单独的表中有一个BigInteger值列表,比如t1和t2。使用MySQL Workbench将它们作为长文本数据类型插入。我想检查t1中的每个值是否存在于t2中。我执行了以下声明: SELECT * FROM t1 WHERE col1.t1 IN ( SELECT col1.t2 FROM t2 ) ; 但声明似乎永远不会结束(数十万条记录)。现在我想重新插入数字,因为比较数字比文本快。我使用Java程序从文本文件中逐行读取这些大整

我在两个单独的表中有一个BigInteger值列表,比如t1和t2。使用MySQL Workbench将它们作为长文本数据类型插入。我想检查t1中的每个值是否存在于t2中。我执行了以下声明:

SELECT  *
FROM    t1
WHERE   col1.t1 IN
   (
     SELECT col1.t2 
     FROM   t2
   ) ;
但声明似乎永远不会结束(数十万条记录)。现在我想重新插入数字,因为比较数字比文本快。我使用Java程序从文本文件中逐行读取这些大整数值。程序给了我以下错误:

DB_错误:_com.mysql.jdbc.MysqlDataTruncation:数据截断:超出 列的范围值

我怎样才能解决这个问题?我需要尽快比较大整数值。

为什么不试试

    SELECT t1.* FROM t1,t2 WHERE t1.col1=t2.col2;

这会快得多。

在您第一次尝试为文本列t1.col1和t2.col1创建索引时。然后使用此查询:

select distinct t1.col1 from t1 join t2 on (t1.col1=t2.col1)

您有两个表的表定义吗?你有解析和插入数据的代码吗?发生这种情况时,您能打印出您试图插入的确切值吗?