现在mysql数据库有一张表,其中有字段: 
      name 用户名字;score 分数(比如:80);createTime 创建时间(比如:2008-09-23 15:00:00); 
  根据这几个字段对分数进行年、月、周和日排序,例如: 
  年排序(当前年): 
  1 jack  80  2008-09-23 15:00:00 
  2 mary  79  2008-08-23 15:00:00 
  3 tom    78  2008-07-23 15:00:00 
  . 
  . 
  . 
  
  月排序(当前月)....... 
  1 jack  80  2008-09-23 15:00:00 
  2 mary  79  2008-09-22 15:00:00 
  3 tom    78  2008-09-14 15:00:00 
  . 
  . 
  . 
  周排序(当前周)和日排序(当前日)类似。   劳请大哥给出速度快点的解决方案。

解决方案 »

  1.   

    排完名次还要显示当前用户的实际排名,
    这个sql该怎么写呢?
      

  2.   

    select * from questionlog where year(begintime) = '2008' and WEEKOFYEAR(begintime)=WEEKOFYEAR(CURRENT_DATE)
    为什么我这个sql搜索不出数据啊   大老...
      

  3.   

    WEEKOFYEAR(begintime) 查看一下都是多少
      

  4.   

    select * from questionlog where year(begintime) = '2008' and DATEPART(weekday,begintime)=DATEPART(weekday,GETDATE())  
      

  5.   

    谢谢大家,搜索出列表的已经解决了.现在还要显示某条记录的排名.比如说jack最好成绩是第几名.请大家帮帮忙!
      

  6.   

    用子查询。
    select q.名字 as name,(select qq.排名 from questionlog  where ……) as 最好成绩  from questionlog as q where