當前位置:首頁 » 編程語言 » sql中in太多拼接怎麼優化
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中in太多拼接怎麼優化

發布時間: 2023-06-01 15:46:28

『壹』 sql語句in 後面跟的數據過多怎麼解決

解決辦法,使用臨時表:

第一步:創建臨時表,並將in內的數據插入到表中

select*into#from(
select'1'numunionall
select'2'unionall
select'3'unionall
.....
select'N'
)a

第二步:執行in查詢

select*from表where列in(selectnumfrom#)

第三步:銷毀臨時表

droptable#


若是連起來寫:

setnocounton;select*into#from(select'1'numunionallselect'2'unionallselect'3'unionall.....select'N')a;select*from表where列in(selectnumfrom#);droptable#

『貳』 sql 語句 in的優化。

假設原來的句子是
select * from t1 where t1.f1 in (select t2.f2 from t2 where t2.f2=xxx)
和你的很類似
你用子查詢 很慢
我們現在修改為:
select t1.* from t1 ,t2 where t1.f1 = t2.f2 and t2.f2=xxxx
這里使用了關聯查詢代替了子查詢大大提高效率。
其次你可以考慮在表t1.f1上加索引,提高查詢速度。

『叄』 怎麼優化 where中含有in 的sql

可以把IN換成LEFT JOIN 加上IS NOT NULL 的這種寫法 LEFT JOIN 效率比較高

『肆』 核銷明細查詢in條件過多導致sql超時優化

現狀:查詢條件中in條件包含了400+門店的條件  且是返回全表欄位,需要排序+分頁查詢 優化:(前提,做數據歸檔) 1.將大量門店查詢拆分成  50個門店一次查詢 ,且只查詢主鍵id,通過分次查詢將查詢到的數據匯總(此時數據可能會有上萬 但只包含主鍵id) 2.根據分頁條件去其中符合條件的主鍵id (此時安分頁篩選出來的數據一般10-30個) 3.根據篩選出的主鍵id通過in條件查詢符合條件的數據返回

『伍』 Sql語句in後面跟的數據過多如何解決

如果是離散型數據就只能用in了,因為這些數據沒有規律,你就只能一項項列出來,讓它們都包含到你所要查詢的語句裡面。
如果是連續型數據就可以不用in了,可以用between...and來替代in,而且這樣寫一般來說效率要比in高。