Android sql 语句 分页加载 一次取10 条
来源:互联网 发布:mysql 什么情况锁表 编辑:程序博客网 时间:2024/05/16 04:41
String sql10= "select * from "+Constants.TABLE_MAILS+ " where "+ Constants.TABLE_MAILS_FOLDER +" =? and "+Constants.TABLE_MAILS_COUNT+" =? "+" order by "+Constants.CONTACTSID+" desc "+" limit 4,8 ";//4是起始index(0为原点),desc方向取8条数据。所以是【4,8+4-1】=【4,8+4)//String sql10="select * from ( "//+ "select * from "+Constants.TABLE_MAILS//+ " where "+ Constants.TABLE_MAILS_FOLDER +" =? and "+Constants.TABLE_MAILS_COUNT+" =? "+" order by "+Constants.CONTACTSID+" desc "+" limit 0,8 "//+ " ) order by "+Constants.CONTACTSID+" asc"+" limit 0,4 ";
/** * 获取 从脚标M_N之间的数据; * * 未读和星标邮件待会 处理 * @param folderName * @param countStr * @param startIndex * @return */public List<MailBean> queryIndex10sMailByFName(String folderName,String countStr,int startIndex ) {Log.i("queryIndexM_NMailByFName", "--------------------------start");List<MailBean> lists = new ArrayList<MailBean>();if (folderName.equals("所有未读")) {return queryNewMailByMsgCount(true, countStr);}else if (folderName.equals("星标邮件")) {return queryStarMailByMsgCount(true, countStr);}MailBean bean;Cursor cursor = null;SQLiteDatabase db = helper.getReadableDatabase();String sql ="select * from " + Constants.TABLE_MAILS+ " where "+ Constants.TABLE_MAILS_FOLDER +"=? and "+Constants.TABLE_MAILS_COUNT+"=?";//+ " ORDER BY " + Constants.KEY_MESSAGE_DATE + " desc";String selection[] = {folderName,countStr};cursor = db.rawQuery(sql, selection);int mailSum=cursor.getCount();if (mailSum < 1) {Log.i("queryIndexM_NMailByFName", folderName+"Group is null");db.close();cursor.close();return lists;} else {//String sqlPer10="SELECT TOP 10 * FROM (SELECT TOP 20 * FROM TableName ORDER BY _id ASC) ORDER BY _id DESC";String sql10= "select * from "+Constants.TABLE_MAILS+ " where "+ Constants.TABLE_MAILS_FOLDER +" =? and "+Constants.TABLE_MAILS_COUNT+" =? "+" order by "+Constants.CONTACTSID+" desc "+" limit 4,8 ";//4是起始index(0为原点),desc方向取8条数据。所以是【4,8+4-1】=【4,8+4)//String sql10="select * from ( "//+ "select * from "+Constants.TABLE_MAILS//+ " where "+ Constants.TABLE_MAILS_FOLDER +" =? and "+Constants.TABLE_MAILS_COUNT+" =? "+" order by "+Constants.CONTACTSID+" desc "+" limit 0,8 "//+ " ) order by "+Constants.CONTACTSID+" asc"+" limit 0,4 ";String selPer10[] = {folderName,countStr};cursor=null;cursor = db.rawQuery(sql10, selPer10);int num2=cursor.getCount();System.out.println("num2 = "+num2);if (cursor.getCount()<1) {db.close();cursor.close();return lists;}else {while (cursor.moveToNext()) {String count = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_COUNT));String mailFolder = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_FOLDER));String msgID = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_MSGUID));String date = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_DATE));String from = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_FROM));String tos = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_TOS));String ccs = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_CCS));String subject = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_SUBJECT));String contentType = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_CONTENTTYPE));String summary = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_SUMMARY));String content = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_CONTENT));boolean isNew = cursor.getInt(cursor.getColumnIndex(Constants.TABLE_MAILS_ISNEW))==1?true:false;boolean isContainAttach = cursor.getInt(cursor.getColumnIndex(Constants.TABLE_MAILS_ISCONTAINATTACH))==1?true:false;String attachNames = cursor.getString(cursor.getColumnIndex(Constants.TABLE_MAILS_ATTACHNAMES));boolean isStar = cursor.getInt(cursor.getColumnIndex(Constants.TABLE_MAILS_ISSTAR))==1?true:false;boolean isReplySign = cursor.getInt(cursor.getColumnIndex(Constants.TABLE_MAILS_ISREPLAYSIGN))==1?true:false;bean = new MailBean(count, mailFolder, msgID, date, from, tos, ccs, subject, contentType, summary ,content, isNew, isContainAttach, attachNames, isStar, isReplySign);lists.add(bean); } } }db.close();cursor.close();return lists;}
注意:在使用的降序和升序的时候, order by ??? 这个地方这一列要是integer 类型,不然数据库按照这一列排序。(不能是 varchar(50) 和text)
运行过程:数据库先按照 ??? 这一列排序,再取出 【startIndex,endIndex) 之间的数据;备注:【 , ) 数学里面的开闭区间你懂得
/** * 创建 邮件 数据列表 * @param db */private void createMailsTable(SQLiteDatabase db){String sql="create table if not exists "+Constants.TABLE_MAILS+"("+ Constants.CONTACTSID +" integer primary key autoincrement,"+ Constants.TABLE_MAILS_COUNT+" text,"+ Constants.TABLE_MAILS_FOLDER+" text,"+ Constants.TABLE_MAILS_MSGUID+" integer,"+ Constants.TABLE_MAILS_DATE+" text,"+ Constants.TABLE_MAILS_FROM+" text,"+ Constants.TABLE_MAILS_TOS+" text,"+ Constants.TABLE_MAILS_CCS+" text,"+ Constants.TABLE_MAILS_SUBJECT+" text,"+ Constants.TABLE_MAILS_CONTENTTYPE+" text,"+ Constants.TABLE_MAILS_SUMMARY+" text,"+ Constants.TABLE_MAILS_CONTENT+" text,"+ Constants.TABLE_MAILS_ISNEW+" integer,"+ Constants.TABLE_MAILS_ISCONTAINATTACH+" integer,"+ Constants.TABLE_MAILS_ATTACHNAMES+" text,"+ Constants.TABLE_MAILS_ATTACHNAMES_SDPATH+" text,"+ Constants.TABLE_MAILS_ISSTAR+" integer,"+ Constants.TABLE_MAILS_ISREPLAYSIGN+" integer)";Log.d("Mine 数据库", sql);db.execSQL(sql);}
0 0
- Android sql 语句 分页加载 一次取10 条
- mybatis一次执行多条sql语句
- MyBatis一次执行多条SQL语句
- MyBatis 一次执行多条SQL语句
- MyBatis一次执行多条SQL语句
- MyBatis一次执行多条SQL语句
- MyBatis一次执行多条SQL语句
- Java一次执行多条SQL语句
- 常用数据库取前10条sql语句写法
- sql分页取数据,或者取个别条数据
- oracle分页语句和随机取N条记录
- SQL语句取底31条数据到40条
- sql语句,查出多条数据只取第一条
- SQL取m到n条数据;数据库分页
- ms sql 一次插入多条记录的语句
- 使用mysqli一次执行多条SQL语句
- 用事务一次处理多条SQL语句
- Oracle中怎样一次执行多条sql语句
- Spring的定时任务的代码实例
- fastjson将bean转成字符串时key首字母变小写问题
- Cordova 6.0源码解析
- locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
- Java中的static
- Android sql 语句 分页加载 一次取10 条
- Code signing is required for product type 'Application' in SDK 'iOS 10.1'
- 求最大公约数和最小公倍数的方法
- session 与cookie 的异同
- Maven Help插件的使用
- ros官网学习资料总结
- uml——类图和对象图
- Python多版本共存管理工具之pyenv
- 获取当前日期并给当前日期增加天数 年数 月数