0

我有一个选择查询如下:

select * from abc where id IN ($list);

variable 的长度问题$list,它可能有 4000-5000 个字符的长度,因此实际执行的查询的长度会增加,并且变得很慢。

有没有一种方法可以将 的值存储$list在文件中并要求 MySQL 从该文件中读取它,类似于LOAD DATA INFILE 'file_name'插入到表中?

4

1 回答 1

5

是的,你可以(TM)!

  • 第一步:使用CREATE TEMPORARY TABLE temp (id ... PRIMARY KEY)LOAD DATA INFILE ...创建并填写一个临时表来保存你的值列表
  • 第二步:运行SELECT abc.id FROM abc INNER JOIN temp ON abc.id=temp.id

我有一个强烈的印象,如果你多次使用相同的值列表,这只会被视为胜利。

于 2013-05-28T18:34:43.410 回答