主题表(Post)字段如下: 
id  title(标题)  createDate (发表时间) replytime (最后回复时间) messageID(最后回复用户)  ...... 回复表(RePost)字段如下: 
id context(内容) replytime(回复时间) ...... 要求:显示在页面的内容如果是新发表的话题就放在上面,如果有新的回复也放在上面. 
如: 
标题        内容        发表用户      发表时间            最后回复用户            最后回复时间 
W          WWWWW        ttt        2008-12-06 12:46:46 
D          DDDD          hhh        2008-11-10 22:22:22        uuu                2008-12-06 12:21:20 
A          AAAAAA      abc        2008-12-06 10:30:02        bca 
B          BBBBB        cba        2008-12-05 09:06:00        cab                2008-12-06 10:10:10 
C          CCC          dd          2008-12-06 07:05:50        ff                2008-12-06 08:30:02 在查询主题时如何对帖子进行排序? 
如果按照发表时间:order by suDate desc 的话,那么帖子有新的回复也不会放在第一位 如果按照最后回复时间: order by rePost desc 的话,发表的新帖也不会放在第一位。 order by rePost desc,suDate desc的话也不正确 请问如何实现???  

解决方案 »

  1.   

    order by ifnull(replytime ,createDate ) desc 
      

  2.   

    order by ifnull(replytime ,createDate ) desc 
    这个其实可以帮你解决的,就是以最后回复时间来排序,如果最后回复时间为空,则用发表时间来代替最后回复时间,至于你的置顶,你可以先以置顶的排.
    order by `置顶字段` desc  , ifnull(replytime ,createDate ) desc