我正在使用
运行MySQL服务器的SQL查询...
where name in ("term1","term2","term3")
我想从文本文件中获取术语列表,每行一个术语。我怎么能这样做?
如果此术语列表变大,该怎么办?例如,10K。这会有效还是我应该使用另一种方法?可能是临时表并加入?数据库是只读的。
答案 0 :(得分:2)
我对MySQL不是很熟悉,但是我发现你可以在你的问题中建议在表格中加载文本文件: -
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, column2, column3);
然后使用连接来获取数据。
详情here。
答案 1 :(得分:1)
通常,使用WHERE ... IN
语句在几百/千个术语后变得非常慢。
此外,如果该表是只读的,那么您将无法添加索引以使其更快,因此,就像astander所说的那样,我会建议一个带连接的临时表。
答案 2 :(得分:0)
我认为您最好的选择是将其读入专门用于此查找的临时表/表。
通过这种方式,您可以为表格编制索引,并使用内部联接/在子查询中的位置。