我注意到使用(offset, fetch
)和rownumber
的不同行爲。使用ROW_NUMBER()代替OFFSET和FETCH
當我使用行號時,它返回我期望的結果。
所以我sequelize查詢如下所示:
ClanModel.findAll({
order: [["Wins", "DESC"]],
offset: page * 5,
limit: 5
})
SQL查詢從第一行開始
SELECT
[clid] AS [ClanId], [Name], [Wins], [Losses],
[totalPoint] AS [TotalPoints]
FROM
[Clan] AS [Clan]
ORDER BY
[Clan].[Wins] DESC
OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY;
結果:
[ { Name: 'Test6'},
{ Name: 'Test5'},
{ Name: 'Test4'},
{ Name: 'Test3'},
{ Name: 'Test2'} ]
SQL查詢第五屆結果後:
SELECT
[clid] AS [ClanId], [Name], [Wins], [Losses],
[totalPoint] AS [TotalPoints]
FROM
[Clan] AS [Clan]
ORDER BY
[Clan].[Wins] DESC
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;
個
結果:
[ { Name: 'Test5'},
{ Name: 'Test4'},
{ Name: 'Test3'},
{ Name: 'Test2'},
{ Name: 'Test1'} ]
行號查詢:
SELECT
[Name], [Wins], [Losses], [TotalPoints] AS [TotalPoints]
FROM
(SELECT
[clid] AS [ClanId], [Name], [Wins], [Losses],
[totalPoint] AS [TotalPoints],
ROW_NUMBER() OVER (ORDER BY [Wins]) AS RowNum
FROM
[Clan]) as Clan
WHERE
Clan.RowNum BETWEEN 5 AND 10
返回結果我想到:
Test5
Test6
Test7
Test8
Test9
Test10
我的數據庫記錄:
Test1
Test2
Test3
Test4
Test5
Test6
Test7
Test8
Test9
Test10
我想使用我的sequelize模型來獲取我的數據,而不是使用普通的sql查詢。但我無法找到在續集中使用行號的方法。
有沒有辦法仍然使用sequelize來獲取我的數據?
你應該編輯你的問題,並顯示完整的數據,而不僅僅是'name'。 –