有時(shí)候在制作一個(gè)查看瀏覽記錄的時(shí)候的時(shí)候,因?yàn)橛脩舨皇前凑枕樞蛉ゲ榭吹?,所以需要?duì)SQL語句進(jìn)行一些處理
sql語句中怎么按照in語句里的id原有的順序進(jìn)行排序輸出
可以做成瀏覽記錄、查看、觀看記錄,視頻瀏覽記錄、商品瀏覽記錄
有時(shí)候我們需要按照in條件里的id順序輸出結(jié)果,可sql語句在不加order by的時(shí)候是按照asc排序的,下邊的sql解決按照in條件順序的id輸出查詢結(jié)果
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,','))
自定義瀏覽記錄排序的處理函數(shù):
'無規(guī)則排序,瀏覽記錄排序方式
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