如何从选择中进行选择?

时间:2014-01-23 00:08:30

标签: mysql sql

我正在创建一个评论系统,该系统将有2条评论。

如何选择最新的20行,然后从该选择中选择前2行(喜欢不喜欢)?我可以用PHP循环来做,但效率不高。目前我只是从所有评论中选出前2名,但这两个评论从未改变,因为人们只是对这些评论进行投票:

SELECT * FROM pagecomments WHERE page_id='$pageid' ORDER BY likes-dislikes DESC LIMIT 2

编辑:该表按“id”列排序,即auto_increment。 page_id是网站上的页面。遗憾。

3 个答案:

答案 0 :(得分:0)

嵌套您的查询:

SELECT   *
FROM (
  SELECT   *
  FROM     pagecomments
  WHERE    page_id='$pageid'
  ORDER BY date DESC
  LIMIT    20
) t
ORDER BY likes-dislikes DESC
LIMIT    2

答案 1 :(得分:0)

不仅由LIkes订购,按订单输入的第一个订单或时间戳。按日期排序,您可以确保获得最新的20个帖子或评论。

SELECT * FROM pagecomments WHERE page_id='$pageid' ORDER by date_entered desc , 
likes-dislikes DESC limit 2

答案 2 :(得分:0)

由于您的id列设置为auto_increment,请在子查询中使用它:

select *, likes-dislikes
from (
  select *
  from pagecomments
  where page_id='$pageid'
  order by id desc
  limit 20
  ) t
order by likes-dislikes desc
limit 2