2012-03-16 12 views
1

私は疑いがあることを明確にしています。どのようにsqlite DBに挿入された最後の値を取得できますか?私はそれのためのコードが必要です。私はこのようなクエリを使用しようとしました:sqliteデータベースに挿入された最後の値を取得する方法

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

私は間違っていますか?私はこの問題で助けが必要です。

ありがとうございます。

答えて

0

値が最後である場合、そのIDは

は、あなたがメッセージテーブルのように、ユーザIDの列を追加し、特定のユーザーによる最後のメッセージのために、この

c = db.rawQuery("SELECT uname,umessage,utime FROM tablename WHERE " + 
       "Id = (SELECT MAX(Id) FROM tablename); ",null); 

ようなクエリを発射することができ、最大でなければなりません

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)); 
+0

すてきな答えです。うまくいった。私はもう一つ疑いがある。私は個々のバディによって送られた最後のメッセージを取得する必要があります。どのように私はそれを得ることができます。上記のコードを使用して、私は最後の値をsqliteに挿入することができます。同じ方法で、私は個々のバディによって送られた最後の値(メッセージ)を取得する必要があります。この問題で私を助けてもらえますか?ありがとう – user1265623

+0

@ user1265623あなたはあなたのデータベースをどのように扱っているのかわかりませんが、ユーザIDを持っていればそれをメッセージのテーブルの列にして、それを基にしてクエリを発行し、配列最後のインデックスにそのユーザーの最後のメッセージが表示されます –

+0

私はあなたが何を言っているのか明確にはわかりません。あなたは私が与える必要がある質問を簡素化して教えてください。 – user1265623

1

SQLiteDatabaseは挿入された行のIDを返します。このIDをある値で覚えて使用することができます。

long lastId = db.insert(......); 
関連する問題