집 >
기사 > 백엔드 개발 > sql话语中当条件的数量非常大时where.in条件子句用什么更好的方法代替
sql话语中当条件的数量非常大时where.in条件子句用什么更好的方法代替
WBOY원래의
2016-06-13 10:37:501986검색
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 组,在循环里逐一查询,更明智点? ------解决方案--------------------