为什么抵消。限制 returns 所有行?
Why offset. limit returns all rows?
以下 SQL 查询 return 所有行 a 而不是从 12 到 18。
SELECT `reviews`.*,
`users`.`username` as `user_username`,
`users`.`slug` as `user_slug`
FROM `reviews`
JOIN `users` ON `users`.`id` = `reviews`.`user_id`
WHERE `reviews`.`product_id` = 2
ORDER BY `reviews`.`created_at` DESC LIMIT 12, 18
因此我必须得到 6 行而不是全部。
在 LIMIT 查询中使用 OFF SET
OFF SET 值也最常与 LIMIT 关键字一起使用。 OFF SET 值允许我们指定从检索数据开始的行
假设我们想要从行的中间开始获取有限数量的成员,我们可以使用 LIMIT 关键字和偏移值来实现。下面显示的脚本从第二行开始获取数据并将结果限制为 2。
SELECT * FROM `members` LIMIT 1, 2;
Refrence and MySQL docs
在你的情况下 return 只有 6 rows
从 12(十三行)开始应该是 ORDER BY reviews.created_at DESC LIMIT 12, 6
以下 SQL 查询 return 所有行 a 而不是从 12 到 18。
SELECT `reviews`.*,
`users`.`username` as `user_username`,
`users`.`slug` as `user_slug`
FROM `reviews`
JOIN `users` ON `users`.`id` = `reviews`.`user_id`
WHERE `reviews`.`product_id` = 2
ORDER BY `reviews`.`created_at` DESC LIMIT 12, 18
因此我必须得到 6 行而不是全部。
在 LIMIT 查询中使用 OFF SET
OFF SET 值也最常与 LIMIT 关键字一起使用。 OFF SET 值允许我们指定从检索数据开始的行
假设我们想要从行的中间开始获取有限数量的成员,我们可以使用 LIMIT 关键字和偏移值来实现。下面显示的脚本从第二行开始获取数据并将结果限制为 2。
SELECT * FROM `members` LIMIT 1, 2;
Refrence and MySQL docs
在你的情况下 return 只有 6 rows
从 12(十三行)开始应该是 ORDER BY reviews.created_at DESC LIMIT 12, 6