计算分页的行数,但不返回任何值

时间:2015-09-03 06:04:32

标签: mysql

我正在使用这个大查询来检索表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列。

1 个答案:

答案 0 :(得分:0)

OFFSET应该是您想要偏移而不是页面的记录/行数。你必须计算要抵消的行并使用它,这是一种方法吗

LIMIT :page_size OFFSET ((:page - 1) * :page_size)

就返回随机行而言,只要page_size不是一个就不应该这样做。检查是否可以共享一些样本数据以及您获得的结果会更容易