如何获取插入sqlite数据库的最后一个值

时间:2012-03-16 10:19:37

标签: android

我有一个疑问需要澄清。如何获取插入sqlite DB的最后一个值。我需要代码。我尝试使用这样的查询:

SELECT uname,umessage,utime FROM chatmessage ORDER BY utime DESC limit 1;

我在哪里做错了?我在这个问题上需要帮助。

提前致谢。

2 个答案:

答案 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));