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 组,在循环里逐一查询,更明智点? ------解决方案--------------------
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn