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 组,在循环里逐一查询,更明智点? ------解决方案--------------------
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn