一个新闻列表 一共有10条信息 可以设定推荐 推荐的显示在上面 不推荐的在下面 按时间排现在问题是 我想把显示在上面的推荐文档 设定为7天以内的推荐文档 应该怎么实现呢 select * from 表 order by 推荐,时间 desc where subday='7' 这样是只显示七天内的推荐信息 怎么改呢 subday='天数' 表示在多少天以内的文档

解决方案 »

  1.   

    没明白  
    不过我想应该是现实所有推荐的,在七天之内的在上面.
    那语句就应该是
    SELECT * FROM 表 WHERE 推荐=推荐 ORDER BY 时间 DESC LIMIT 0,10
    就是先查出来推荐的,再去约束时间,倒叙排列.
      

  2.   

    用2个查询获取select * from 表 where 推荐状态 = 1 and subday='7' 另外获取下select * from 表 where 推荐状态 = 0 limit (10 - 上面的总数)组合下就是第一页其他页使用select * from 表 where 推荐状态 = 0 limit (page -1) * 10, 10
      

  3.   

    select * from 表 where 推荐状态 = 1 and date_add(时间, interval 7 day)>CURDATE()
      

  4.   

    select * from 表 where date_add(时间, interval 7 day)>CURDATE() order by 推荐状态 desc
      

  5.   

    select * from 表 
    order by 
      (subday<='7' and 推荐=true) desc ,  时间 desc
    limit 10或见3楼