为什么抵消。限制 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