zoukankan      html  css  js  c++  java
  • SQL查询语句中的 limit offset(转 )

    经常用到在数据库中查询中间几条数据的需求

    比如下面的sql语句:

    ① selete * from testtable limit 2,1;

    ② selete * from testtable limit 2 offset 1;

    注意:

    1.数据库数据计算是从0开始的

    2.offset X是跳过X个数据,limit Y是选取Y个数据

    3.limit  X,Y  中X表示跳过X个数据,读取Y个数据

    这两个都是能完成需要,但是他们之间是有区别的:

    ①是从数据库中第三条开始查询,取一条数据,即第三条数据读取,一二条跳过

    ②是从数据库中的第二条数据开始查询两条数据,即第二条和第三条。

    ----------------------------------------------华丽的分割线----------------------------------------------

    以下内容与标题无关

    转载:

    参考文献1.Android操作嵌入式关系型SQLite数据库

    参考文献2.Android采用ListView实现数据列表显示

    在学习ListView实现数据列表显示时,需要用到参考文献1的源代码,但是源代码中少了一个getScrollData函数,在此补充一下

     1         /**
     2          * 分页获取记录
     3          * @param offset 跳过前面多少条记录
     4          * @param maxResult 每页获取多少条记录
     5          * @return
     6          */
     7         //该函数有用到 limit offset可以复习一下
     8         public List<Person> getScrollData(int offset, int maxResult){
     9             List<Person> persons = new ArrayList<Person>();
    10             SQLiteDatabase db = dbservice.getReadableDatabase();
    11             Cursor cursor = db.rawQuery("select * from person order by id asc limit ?,?",
    12                     new String[]{String.valueOf(offset), String.valueOf(maxResult)});
    13             while(cursor.moveToNext()){
    14                 int id = cursor.getInt(cursor.getColumnIndex("id"));
    15                 int age = cursor.getInt(cursor.getColumnIndex("age"));
    16                 String name = cursor.getString(cursor.getColumnIndex("name"));
    17                 //下面这种也可以获得参数
    18                 /*Integer id = cursor.getInt(0);  
    19                         String name = cursor.getString(1);   
    20                         Integer age = cursor.getInt(2);  */
    21                 persons.add(new Person(id, name, age));
    22             }
    23             cursor.close();
    24             return persons;
    25         }        
  • 相关阅读:
    记录MySQL中优化sql语句查询常用的30种方法
    记录分布式和集群的区别
    TCP的三次握手与四次挥手理解及面试题(很全面)
    记录Linux常用命令大全
    DNS解析流程
    dup和dup2用法小结
    c++多态的实现
    linux下常见的字符串处理
    ncurses库的一些函数
    用两个栈实现一个队列
  • 原文地址:https://www.cnblogs.com/kingxiaozi/p/5898965.html
Copyright © 2011-2022 走看看