有時候在制作一個查看瀏覽記錄的時候的時候,因為用戶不是按照順序去查看的,所以需要對SQL語句進行一些處理
sql語句中怎么按照in語句里的id原有的順序進行排序輸出
可以做成瀏覽記錄、查看、觀看記錄,視頻瀏覽記錄、商品瀏覽記錄
有時候我們需要按照in條件里的id順序輸出結果,可sql語句在不加order by的時候是按照asc排序的,下邊的sql解決按照in條件順序的id輸出查詢結果
Access:(
測試可以使用)
select * From 表 Where id in(2,9,4,3,6,8,1,7,5) order by instr('
,2,9,4,3,6,8,1,7,5,',','&id&',')
MSSQL:(
測試可以使用)
select * From 表 Where id in(2,9,4,3,6,8,1,7,5) order by charindex(','+rtrim(cast(id as varchar(10)))+',','
,2,9,4,3,6,8,1,7,5,')
MySQL:
select * From 表 Where id in (2,9,4,3,6,8,1,7,5) order by instr(',2,9,4,3,6,8,1,7,5,',',CONCAT(',',id,','))
自定義瀏覽記錄排序的處理函數:
'無規則排序,瀏覽記錄排序方式
function qwbm_sqlorder(p_xuid,xml1)
pai_torder = ""
if qdatatype="sqlserver" then
pai_torder = " order by charindex(','+rtrim(cast(id as varchar(10)))+',',',"& p_xuid &",')"
else
pai_torder = " order by instr(',"& p_xuid &",',','&id&',')"
end if
qwbm_sqlorder = pai_torder
end function