Mysql连接到常量的联合


mysql join to union of constants

我有一个mysql表,它存储两个列之间的范围,如下所示:

id  start  end
 1      1    9
 2     20   49

我需要创建一个查询,允许用户提交多达10,000个整数值的列表,并且需要检查该值是否在范围内。我想避免运行10,000个单独的查询。我想要一个像下面这样的数据集,其中PARAM是用户提交的10,000个整数值之一:

start  end  PARAM
    1    9      4
   20   49     18
    1    9      6
    1    9      8

我想用扩展的WHERE子句来做,比如start>=:PARAM和end<=:PARAM,但我只会从中获得范围,并且在应用程序中必须循环遍历每个参数并找到匹配的范围。

我看到过其他使用联合的例子,但是以前没有尝试过。

我还考虑过插入到临时表,使用连接选择,然后清空它,但不知道它是否会更有效。

我最终创建了一个长查询,一个包含5,000个条件的where cause,并以这种方式将其分解。表太大,无法在服务器端循环中放入内存。

如果它成为一个问题,我计划重构代码,让服务器将参数保存到一个文件,并直接在mysql服务器上运行查询,要么将它们转储到表中,要么创建立方体来保存匹配。