我正在使用这个大查询来检索表posts
中的数据(如果用户正在关注其他用户(希望它使sens =)),并且可以在users_followers
中找到。
SELECT
users_followers.user_id,
users_followers.follower_since_timestamp,
p.user_id,
p.post_id,
p.post_has_image,
p.post_image_name,
p.post_topic,
p.post_text,
p.post_hashtag,
p.post_timestamp,
p.post_edit_timestamp
FROM
users_followers
LEFT JOIN
(SELECT user_id, post_id, post_has_image, post_image_name, post_topic, post_text,post_timestamp,post_edit_timestamp, post_hashtag FROM posts) p
ON p.user_id = users_followers.user_id
where
users_followers.follower_id = :user_id AND post_text IS NOT NULL ORDER by post_timestamp DESC LIMIT :page_size OFFSET :page
但是现在,我正试图做一个分页功能。我无法弄清楚如何计算上述查询中的行。
我尝试添加COUNT(users_followers.user_id) AS total
。
但奇怪的是,它只返回一个随机行,甚至不是total
列。
答案 0 :(得分:0)
OFFSET
应该是您想要偏移而不是页面的记录/行数。你必须计算要抵消的行并使用它,这是一种方法吗
LIMIT :page_size OFFSET ((:page - 1) * :page_size)
就返回随机行而言,只要page_size不是一个就不应该这样做。检查是否可以共享一些样本数据以及您获得的结果会更容易