最近小弟遇到这么个问题,希望大牛们帮帮忙,谢谢各位了,问题如下:
我通过webservice从另一家公司得到一些数据然后插入到我们自己的数据库中,为了保持外键关系,需要先根据这家公司得到的数据中的身份证号码到我们公司的中的人员信息表中查询到相应的人员序号,然后连同这些数据一起插入到我们的数据库表中。使用身份证号查询人员序号,我想到的办法就是用in来查询了,所以呢我先把得来的身份证号拼接成字符串,然后用in来查询,结果就出现错误:列表中的最大表达式数为1000。我上网查了下有的说把身份证号拼接成的字符串分解下,用select ryxh from ryxx where sfzhm in ('身份证1',....'身份证999') or in ('身份证1000',.....,'身份证1999') or in() .... 来查询,这确实是个解决办法,但效率不怎么样啊,我们那个人员信息表中有180多万条数据,我试了下,查起来很慢啊。所以求教各位了,有没有更好的方法?或者干脆不用in这种方法查询,换别的方法查询,exists这种方法应该是不适用这里了。小弟在这里先谢谢各位了