如果这些VAR没有规律,那就说明一定要把这些VAR都写出来,我觉得理论上是一定要一个个比较的,没有可能优化
var多如果是因为传输SQL语句太长的问题,可以把这些VAR存入数据库

解决方案 »

  1.   

    1.尽量不要用*
    2.在某些情况下可以再加一个id的上下限判断来缩小查询范围
    3.可以尝试分开运行,每一个id运行一次,然后将数据整合到一个数组
      

  2.   

    use a temp table to store these IDs and add an INDEX for ID field
      

  3.   

    可以尝试分开每个ID运行一句,
    或者拆为IN中包含固定个数ID的var,分为多个语句执行,比每个ID执行一次效率稍高一些.
      

  4.   

    set @var = '1,2,3,4,........,100000';
    select * from table where id in(id,@var );
      

  5.   

    上面写错了。
    set @var = '1,2,3,4,........,100000';
    select * from table where id find_in_set(id,@var );