我有一个疑问需要澄清。如何获取插入sqlite DB的最后一个值。我需要代码。我尝试使用这样的查询:
SELECT uname,umessage,utime FROM chatmessage ORDER BY utime DESC limit 1;
我在哪里做错了?我在这个问题上需要帮助。
提前致谢。
答案 0 :(得分:1)
SQLiteDatabase返回插入行的id。您可以在某个值中重新记住此ID并使用它。
long lastId = db.insert(......);
答案 1 :(得分:0)
如果值为last,则其id应为最大值
您可以像这样触发查询
c = db.rawQuery("SELECT uname,umessage,utime FROM tablename WHERE " +
"Id = (SELECT MAX(Id) FROM tablename ); ",null);
对于特定用户的最后一条消息,在消息表中添加用户ID列,如
id | userid | message | utime
1 | 1 | wlhf | 3:10
2 | 3 | dfhhfjh | 2:15
3 | 1 | kjfedhr | 4:00
4 | 2 | hejhe | 1:15
5 | 3 | kegekr | 3:30
6 | 1 | wlhf | 3:10
7 | 3 | dfhhfjh | 2:15
8 | 1 | kjfedhr | 4:00
9 | 2 | hejhe | 1:15
10 | 3 | kegekr | 3:30
c = db.rawQuery("
select message from table1 where
userid = 1 ; ",null);
recieve like
ArrayList<String> listMessg = new ArrayList<String>();
cursor = dbm.columnValueofCourse();
cursor.moveToFirst();
startManagingCursor(cursor);
for (int i = 0; i < cursor.getCount(); i++) {
reciv = cursor.getString(cursor
.getColumnIndex("message"));
listMessg.add(reciv_Par);
}
int sizeoflist = listMessg.size();
because in ascending order , the last index
of array list will be the last message of the user
System.out.println("THE LAST MESSAGE BY USER IS " + listMessg.et(sizeoflist -1));