您好,我使用此代码来显示我的对话列表
private Cursor getMessages( SQLiteDatabase db, boolean justNewMessages) {
final String table = Constants.TABLE_CONVERSATION;
//index
final String[] columns = { Constants.TABLE_CONVERSATION_FIELD_ID, //0
Constants.TABLE_CONVERSATION_FIELD_DATE, //1
Constants.TABLE_CONVERSATION_FIELD_FROM, //2
Constants.TABLE_CONVERSATION_FIELD_TO, //3
Constants.TABLE_CONVERSATION_FIELD_MSG //4
};
String selection;
if(justNewMessages) {
selection = "(" + Constants.TABLE_CONVERSATION_FIELD_FROM + " = '" + jid +"' or "
+ Constants.TABLE_CONVERSATION_FIELD_TO + " = '" + jid + "') and "
+ Constants.TABLE_CONVERSATION_FIELD_NEW + " = '1'";
} else {
selection = "(" + Constants.TABLE_CONVERSATION_FIELD_FROM + " = '" + jid +"' or "
+ Constants.TABLE_CONVERSATION_FIELD_TO + " = '" + jid + "')";
}
final String[] selectionArgs = null;
final String groupBy = null;
final String having = null;
final String orderBy = Constants.TABLE_CONVERSATION_FIELD_DATE;
return db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
}
我想最后选择10次尝试
final String orderBy = Constants.TABLE_CONVERSATION_FIELD_DATE + " DESC LIMIT 10";
这是最后一次谈话,但是相反(最后一个字是up)如何仅选择最后一次会话 或删除并离开最后10个对话并显示此...不能帮助我开始创意我不理解......
答案 0 :(得分:2)
试试这个查询,
Select * from [table] LIMIT
((Select count([any_column_name]) from [table])-10),10
这将获取表格的最后10行。 将* any_column_name *替换为yr table的任何列。
此致 Nital Shah
答案 1 :(得分:1)
FIXED感谢您提供的解决方案,谢谢谢谢
由
修正final String tableff ="Select "+Constants.TABLE_CONVERSATION_FIELD_ID+","+Constants.TABLE_CONVERSATION_FIELD_DATE+","+Constants.TABLE_CONVERSATION_FIELD_FROM+","+Constants.TABLE_CONVERSATION_FIELD_TO+","+Constants.TABLE_CONVERSATION_FIELD_MSG+" from ["+table+"] WHERE "+selection+" LIMIT ((Select count(["+Constants.TABLE_CONVERSATION_FIELD_DATE+"]) from ["+table+"] WHERE "+selection+")-10),10";
return db.rawQuery(tableff, selectionArgs);
答案 2 :(得分:0)
试试这个:
final String orderBy = Constants.TABLE_CONVERSATION_FIELD_DATE + " DESC";
final String limit= 10;
return db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);