【问题标题】:sql to select top 10 recordssql选择前10条记录
【发布时间】:2011-01-24 15:53:00
【问题描述】:

我有下表(分):

    recno   uid   uname   points
    ============================
    1       a     abc      10
    2       b     bac      8
    3       c     cvb      12
    4       d     aty      13
    5       f     cyu      9
    -------------------------
    --------------------------

我需要的是只显示前十名的记录(按点(desc)和每页上的五条记录。我有以下 SQL 语句:

    select * from points where uid in(a,c) order by uid LIMIT 1, 5

谢谢

【问题讨论】:

  • 我不明白...这是你想要的:select * from points order by points dect limit 5 ?

标签: mysql sql pagination


【解决方案1】:

第一页:

SELECT * FROM points p ORDER BY points DESC LIMIT 0, 5

第二页:

SELECT * FROM points p ORDER BY points DESC LIMIT 5, 5

【讨论】:

    【解决方案2】:

    您无法执行 SQL 查询来返回一定数量的页面,您必须为您所处的场景实现某种分页模块或任何等效模块,然后获取LIMIT 0, 5 LIMIT 5, 5 另一个。

    记录这么少,这不是问题,但在生产规模环境中选择所有记录,然后将这些结果分解成页面将是很多不必要的开销,最好只选择您需要的数据。

    【讨论】:

      猜你喜欢
      • 2011-04-21
      • 2012-06-21
      • 2010-09-15
      • 2011-10-17
      • 2020-03-12
      • 1970-01-01
      • 2016-08-16
      • 2013-08-01
      • 1970-01-01
      相关资源
      最近更新 更多