hql语句如下:
from Job where jobType in (223,12,12,213,213,23,12,214,3,3545,35466,345435,33333,44445,……),
in 后面带了将近800到900个数,
执行词句发现超级慢,有高手知道怎么解决吗?别告诉我用 not in,因为后面的个数是不一定的,而且个数差不多都是900个,万分感谢……………………

解决方案 »

  1.   

    inner join 会不会快一点?没试过。或者可以试试
      

  2.   

    两个建议:
    1.用EXISTS代替IN
    2.或者把这个条件的结果放到临时表,在查询时再连接查询这张临时表
      

  3.   

    这个in后面怎么会有这么多。这些数据如果是从表里来的可以用join或者exists
      

  4.   

    in (??????)后面的参数放入一张临时表
    然后 from table left join temp on table.job = temp.job;
      

  5.   

    我声明一点,in后面确实跟900个,我说的jobType只是举个例子,现在是数据库里的数据并不是很多,5000多条,但一个job对应一个jobType,所以in后面是不会有重复的,in后面有时候会达到1000多个,in后面没有既定的规律,大家看看怎么弄。