sql语句中当条件的数量非常大时where...in条件子句用什么更好的方法代替?当sql语句中的where条件是where i
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 组,在循环里逐一查询,更明智点? [解决办法]