如果是Oracleselect ID,titile,content,goodvote,createdate 
from table_name
where rownum<=20
order by createdate desc,goodvote desc其它数据库在选取记录段稍有不同

解决方案 »

  1.   

    select * from (select top 20 * from table order by createdate desc) order by goodvote desc
      

  2.   

    select * from (select * from table t order by goodvote desc) where rownum<=20
      

  3.   

    select * from (select * from table t order by goodvote desc) where rownum<=20中的“select * from table t order by goodvote desc”会不会有性能问题?因为数据量很大
      

  4.   

    有性能问题,要实现这个需求,没办法
    要不用程序来实现,估计效率不会比sql高
    要提高性能,就把*换成具体的字段,oracle不用来解析这个*号,这样会提供些性能
    你具体的需求是什么?
      

  5.   

    解决了,谢谢大家帮忙,我用mysql:
    SELECT * FROM table order by createdate desc,goodvote desc limit 20