谁能帮我理解为什么以下查询没有正确偏移?
它的意思是选择games表中的所有记录,并根据另一个表(wishlist)中是否存在具有相同gameId @memberId的记录添加一个值为0或1的列(简单的英语,明白我来自游戏的所有记录,并标记愿望 list 表中存在的任何游戏,在我给你的任何 memberId 下)
SELECT *,
CASE WHEN wishlists.memberid IS NULL THEN 0 ELSE 1 END AS InMembersList
FROM games
INNER JOIN platforms ON games.platformid = platforms.id
LEFT OUTER JOIN wishlists ON games.id = wishlists.gameid and wishlists.memberid = @memberId
WHERE platforms.platformUrlId = @platformUrlId
ORDER BY releaseDate DESC
LIMIT 1,8
当我将偏移量从 1 更改为 2、3 或其他任何值时,会出现许多相同的记录,这没有任何意义。我哪里错了?
架构:
platforms(id, platform)
members(id, name)
games(id, platformId, releaseDate)
wishlists(id, memberId, gameId)
最佳答案
LIMIT 1,8
表示从第 1 行开始(它们从 0 开始)并获取 8 行。所以 LIMIT 2,8
将为您提供从第 2 行开始的 8 行 - 其中七行与 LIMIT 1,8
关于MySQL 查询未正确偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816198/