sql语句中当条件的数量非常大时where...in条件子句用什么更好的方法代替? 当sql语句中的where条件是where id in(1,2,3,4,8,11,23,56,89,110,...),即当in的数量相当大时,这种sql语句是很劣质的,那么用什么其它更好的方法解决这样的问题呢?
------解决方案-------------------- 把in中的id分开来查询,最后再合并起来。
------解决方案-------------------- select * from x where id=1 union all select * from x where id=2 union all ...
------解决方案-------------------- 这个就不错了。
------解决方案-------------------- 能告诉我你列表中的id是怎么来的吗?
------解决方案-------------------- 那就不是 sql语句很劣质的 的问题了,既然你允许传入一万个 id 值,那么为什么要说包含这一万个 id 值得 in 子句是劣质的呢?
------解决方案-------------------- 那么你认为把传入的 id 组先存入表,然后再关联查询是否更明智呢?
------解决方案-------------------- 或者是遍历传入的 id 组,在循环里逐一查询,更明智点?
------解决方案--------------------