在SQL WHERE ... IN子句中使用文本文件中的术语

时间:2010-03-23 15:57:40

标签: sql mysql file where-clause

我正在使用

运行MySQL服务器的SQL查询
...
where name in ("term1","term2","term3")

我想从文本文件中获取术语列表,每行一个术语。我怎么能这样做?

如果此术语列表变大,该怎么办?例如,10K。这会有效还是我应该使用另一种方法?可能是临时表并加入?数据库是只读的。

3 个答案:

答案 0 :(得分:2)

我对MySQL不是很熟悉,但是我发现你可以在你的问题中建议在表格中加载文本文件: -

LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (column1, column2, column3);

然后使用连接来获取数据。

详情here

答案 1 :(得分:1)

通常,使用WHERE ... IN语句在几百/千个术语后变得非常慢。

此外,如果该表是只读的,那么您将无法添加索引以使其更快,因此,就像astander所说的那样,我会建议一个带连接的临时表。

答案 2 :(得分:0)

我认为您最好的选择是将其读入专门用于此查找的临时表/表

通过这种方式,您可以为表格编制索引,并使用内部联接/在子查询中的位置