Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL中文本文件中的术语,其中。。。在条款中_Sql_Mysql_File_Where Clause - Fatal编程技术网

使用SQL中文本文件中的术语,其中。。。在条款中

使用SQL中文本文件中的术语,其中。。。在条款中,sql,mysql,file,where-clause,Sql,Mysql,File,Where Clause,我正在使用 ... where name in ("term1","term2","term3") 我想从每行一个术语的文本文件中获取术语列表。我该怎么做 如果这个术语列表变大了怎么办?例如,10公里。这是有效的还是我应该使用另一种方法?可能是临时表和连接?数据库是只读的。我认为最好将其读入专门用于此查找的临时表 通过这种方式,您可以索引表,并在子查询中使用内部联接/where通常使用where。。。在语句中,经过几百/千个术语后,语句变得非常慢 此外,如果该表是只读的,那么您将无法添加索引以

我正在使用

...
where name in ("term1","term2","term3")
我想从每行一个术语的文本文件中获取术语列表。我该怎么做


如果这个术语列表变大了怎么办?例如,10公里。这是有效的还是我应该使用另一种方法?可能是临时表和连接?数据库是只读的。

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


通过这种方式,您可以索引表,并在子查询中使用内部联接/where

通常使用
where。。。在
语句中,经过几百/千个术语后,语句变得非常慢


此外,如果该表是只读的,那么您将无法添加索引以使其更快,因此,正如astander所说,我建议使用带有联接的临时表。

我对MySQL不太熟悉,但我看到类似这样的情况,您可以按照问题中的建议在表中加载文本文件:-

LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (column1, column2, column3);
然后使用连接获取数据


详细信息。

我必须先创建t1表,对吗?如果数据库是只读的,我可以这样做吗?在SQL server中,您可以在另一个数据库中创建表,并使用DatabaseName..TableName符号从另一个(只读)数据库中读取。我不确定这在MySQL中是否可行。应该也有可能。不幸的是,这个公共MySQL服务器既不允许创建临时表也不允许创建数据库。谢谢大家,伙计们!我只是想接受这个问题,不要让它没有答案。因为所有的问题都是关于同一时间的,所以我接受这一个作为代码示例,并链接到详细信息?这两种方法都可以很好地使用,使用一点嵌套的循环madnessPerl就可以了。你能给出一段代码作为答案吗?