mysql查询,有限制和顺序,答案错误

时间:2015-07-18 14:25:17

标签: mysql sql database mysqli

我有一个评论表,我使用这个表来保存应用程序用户对帖子的评论,评论也喜欢,我想先按顺序显示评论,然后按日期排序,但不是全部最初的评论,因为可能会有非常大量的评论,我想先显示最后7条评论,然后按照时间顺序排列,先显示最喜欢的评论然后再显示最后的新评论,我也限制它首先显示7条评论,但mysql的限制功能目前不适用于我的查询,我的评论表包含20条评论。

抱歉,由于信誉不足,我无法将图片上传到此处,因此我将其上传到了我的域名。

  

表格图片:http://kurdsofts.net/first-mysql.jpg

我使用此查询来获取帖子的评论,按照喜欢和日期排序,并将其限制为7(此帖子有7条评论):

SELECT * FROM `comments` WHERE `post_id` = 19 ORDER BY `likes` DESC,`date` DESC LIMIT 0,7
  

结果:http://kurdsofts.net/2nd-mysql.jpg

结果还可以,直到现在没问题

但如果我想通过此查询向用户显示剩余评论:

SELECT * FROM `comments` WHERE `post_id` = 19 ORDER BY `likes` DESC,`date` DESC LIMIT 1,7
  

结果:kurdsofts.net/srd-mysql.jpg

默认情况下,它应该显示保留注释,而不显示当前注释,但答案再次包含7条注释。

即使是:

SELECT * FROM `comments` WHERE `post_id` = 19 ORDER BY `likes` DESC,`date` DESC LIMIT 2,7
  

结果:kurdsofts.net/4th-mysql.jpg

查询的答案包含5个答案,我不知道为什么 此帖子只有7条评论,对于 LIMIT 1,7 LIMIT 2,7 ,它应该回答空表行

任何人都可以帮助我,如果可以帮助我解决这个问题,我将非常感谢你

2 个答案:

答案 0 :(得分:1)

我错了,我不知道LIMIT的第一个参数,是偏移的,我认为这是页码:所以我的查询命令有问题,这是错误的 我发现,如果我想向用户显示其他7条评论,或者如果没有评论,查询返回空行我应该多页面和我想要显示的有限数量的评论

对于前7条评论,我的查询应该是:

  

SELECT * FROM comments WHERE post_id = 19 ORDER BY likes   DESC,date DESC LIMIT 0,7

并显示另外7条评论我的查询应该是:

  

SELECT * FROM comments WHERE post_id = 19 ORDER BY likes   DESC,date DESC限制7,7

答案 1 :(得分:0)

您首先想要最喜欢的评论,然后是最新评论。您的(define a '(end)) ;Value: a (define b a) ;Value: b (define c (cons a b)) ;Value: c c ;Value 15: ((end) end) (set-car! (car c) 'HI) ;Unspecified return value c ;Value 15: ((hi) hi) (set-cdr! (cdr c) '(hello)) ;Unspecified return value c ;Value 15: ((hi hello) hi hello) (set-cdr! c '(end)) ;Unspecified return value c ;Value 15: ((hi hello) end) 按相同字段排序所有评论。

您需要先找到您想要的那个,然后明确地将它们包含在order by中:

order by