關於Select Where In 的排序問題

2021-06-18 11:52:27 字數 1036 閱讀 2473

有很多人不知道sql裡怎麼按 select where in 的內容進行字段排序.

假如sql語句為:

select *

from table1

where (id in (3,5,1,4,2))

如果in後面的條件都是數字,那mssql排序應該為

select *

from table1

where (id in (3,5,1,4,2))

order by charindex(',' + convert(nvarchar, id) + ',', ',' + convert(nvarchar, replace('3,5,1,4,2', ' ','')) + ',')

改進方法,不去處理空格,直接改用空格判斷.可以用來判斷少數有空格的字元條件.

select *

from table1

where (id in (3,5,1,4,2))

order by patindex('% ' + convert(nvarchar(4000), id) + ' %', ' ' + convert(nvarchar(4000), replace('3,5,1,4,2', ',',' , ')) + ' ')

其實還是在sql外處理好條件字串再進行查詢和排序比較好.

對於mysql排序可能要改為:

select *

from table1

where (id in (3,5,1,4,2))

order by find_in_set(id, '3,5,1,4,2')

mysql關於select where in的效率

很多大牛公司建議select where in中不要超過200,有的說不要超過500.那麼問題來了,使用子查詢的時候如果結果級超過了500呢。今天做了個測試 下面是測試結果,分別是兩個語句查詢10次所用的時間 select from cp bill info where id in select i...

關於程式關於世界

首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...

關於血液關於軟體

1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...