Oracle數據庫中IN參數個數超過1000的問題


問題描述:Oracle數據庫中IN參數個數超過1000

遇到這種情況,想快速解決,數據庫有 exists 關鍵字的話,可以用exists來代替 in 關鍵字。

數據庫解決方法:可以拆分sql用 where id in (1, 2, ..., 999) or id in (1000, ...)這種方法解決。

好的解決方法:
1.用表關聯代替IN;2.在where條件中使用子查詢,如“select  * from b where c in (select  d from e ......)”
這樣的形式。

順便在這里擴充一下in和exists。
在sql優化中,in與exists的區別就是,當括號里面值少的話,用in效率會比較高,值多的話用exists效率高。

與not  in和not  exists不同,not exists效率永遠會比not in要高。

總而言之,在SQL語句中要慎用IN,IN一般只用於參數個數較少的情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM