【问题标题】:Grab a certain amount of database entries from a table从表中获取一定数量的数据库条目
【发布时间】:2011-02-23 12:04:19
【问题描述】:

有没有办法从数据库示例中获取准确数量的条目。例如,假设您有一个表,其中只有一个 id 和列的总访问次数。假设您想准确抓取 20 个条目并按总访问次数对其进行排序。你会怎么做?我知道如何对整个表进行排序,但希望能够获取前 20 名的总访问量,然后对它们进行排序。谢谢

O,现在我正在使用 sqlite,但我知道将来我也会使用 mysql。谢谢

【问题讨论】:

    标签: mysql database sqlite


    【解决方案1】:

    尝试:

    SELECT * FROM TableName ORDER BY TotalVisits LIMIT 20
    

    【讨论】:

      【解决方案2】:

      使用limit获得前20名,

      如果您想添加其他排序,请在访问列之后添加它

      喜欢:

      SELECT * FROM mytable ORDER BY visits DESC 
      
      /*here put another order by field like date */
      , date
      
      LIMIT 20
      

      【讨论】:

        【解决方案3】:

        使用 ORDER - LIMIT 子句

        SELECT * FROM table ORDER BY field [ASC|DESC] LIMIT 20 OFFSET [offset value]
        

        【讨论】:

          【解决方案4】:

          您需要使用 LIMIT,但如果您打算根据单独的条件对前 20 名进行重新排序,则需要将整个内容放在子查询中。所以

          SELECT * from <table> order by <total visits column> LIMIT 20
          

          会让你进入前 20 名,但是要在该结果中排序,你会做类似的事情

          SELECT * from 
            (SELECT * from <table> ORDER BY <total visits column> LIMIT 20) 
            ORDER BY <other criteria>
          

          【讨论】:

            【解决方案5】:

            LIMIT 子句可用于限制 SELECT 语句返回的行数。 LIMIT 接受一个或两个数字参数,它们都必须是非负整数常量,但以下情况除外:

            有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1):

            SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15
            

            要检索从某个偏移量到结果集末尾的所有行,您可以为第二个参数使用一些较大的数字。此语句检索从第 96 行到最后一行的所有行:

            SELECT * FROM tbl LIMIT 95,18446744073709551615;
            

            使用一个参数,该值指定从结果集开头返回的行数:

            SELECT * FROM tbl LIMIT 5;     # Retrieve first 5 rows
            

            换句话说,LIMIT row_count 等价于 LIMIT 0, row_count。

            All on:http://dev.mysql.com/doc/refman/5.5/en/select.html 对 mysql 的更好解释,但是 sqlite 的工作方式相同:http://www.sqlite.org/lang_select.html

            【讨论】:

              猜你喜欢
              • 2010-10-12
              • 2022-12-15
              • 2022-11-14
              • 1970-01-01
              • 2012-12-31
              • 1970-01-01
              • 2017-05-10
              • 1970-01-01
              相关资源
              最近更新 更多