2014-04-15 37 views
0

我有一个excel中100,000个序列号的列表。我想检查这些序列号是否在数据库表中可用。什么将是最简单的方法?我可以用蛤蟆做什么?使用巨大的逗号分隔输入运行查询

+0

忘记用100,000个'OR'子句写单个查询。相反,使用'INSERT'或'COPY'将数字加载到临时表中,然后使用联接:'SELECT * FROM mytbl WHERE NOT EXISTS(SELECT 1 FROM existingtbl WHERE existingtbl.val = mytbl.val)'。 –

回答

0

你可以简单地用一个条款去:

SELECT * FROM table t1 WHERE col1 in (1, 2, 3, 4)

+0

这里的问题是我不能马上通过1Lakh记录。有没有最简单的方法来做到这一点? – Robert

0

是这些数字的顺序?或者至少有一些是连续的?如果是这样,在Excel中对它们进行排序,然后使用范围如下:

SELECT * 
FROM table t1 
WHERE col1 BETWEEN 100 AND 1000 
    AND col1 BETWEEN 10000 AND 20000 
    AND .... 

当然,你的范围代替这些数字。