私は2つのテーブルを持っていPostsますCache.
Cacheテーブルは、投稿でそれを保存する必要があります。投稿 ID は、列に保存されます (表PostIDs内Cache、コンマ ( ) で区切られます,)。
そして、これは私のコードです:
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
Cacheテーブルで指定された順序でアイテムを取得するにはどうすればよいですか (純粋な SQL) ? (その例では、次の順序で投稿を取得したい: 5,1,9,4,10,3)