0
我有兩個表,Posts
和Cache
。以正確的順序獲取從其他表中檢索的ID的行
Cache
表保存與帖子應該顯示。帖子ID是(在Cache
表PostIDs
保存在一列,用逗號(,
)分離
這是我的代碼:。
SELECT * FROM Posts a
WHERE ID IN
(
SELECT item FROM Cache AS b
CROSS APPLY dbo.fnSplit(b.postIDs, ',')
WHERE ((b.ownerID = 1) AND (b.magID = 8))
)
而且fnSplit
工作正常
但問題是,帖子的順序不正確
例如,如果我們有這個字符串在Cache
:5,1,9,4,10,3
,我想從Posts
與該順序。 (第一行應該是後與ID 5,然後1,那麼9,然後4,...)
但我的代碼返回在另一個職位順序:1,3,4,5,9,10
(中行Posts
表中的順序)
我應該怎麼做(純SQL)以Cache
表中指定的順序獲取項目? (在這個例子中,我希望得到的職位順序:5,1,9,4,10,3
)
我的表中沒有任何名爲'cacheorder'的字段。我想用'b.postIDs'字符串中的順序來訂購商品。 –
然後,您需要重寫您的fnSplit,以便它返回訂單。 – podiluska
沒有其他方法嗎? (由於fnSplit以正確的順序返回行) –