2011-06-15 14 views
42

ile bir SQLite Sorgusu'nda LIMIT argümanını kullanma Tarihine göre en son sonucu almak için aşağıdaki sorguyu kullanmaya çalışıyorum.Android

Cursor cursor = mDb.query(DATABASE_TABLE, new String[] {KEY_DATE, KEY_REPS, 
KEY_WEIGHT}, null, null, null, null, KEY_DATE + "DESC", ???); 

Sınır argümanını kullanmalıyım (inanıyorum) ama bir dizge alır. "1" değeri olan bir dize oluşturmayı denedim, ancak çalışmadı. Herkes aslında size çeşitli SQL göstermektedir ki (bu bir başka) büyük bir referans sitenin biliyorsa başka şeyler ben

Ayrıca "1" SINIR 1 "LİMİT 1" Limiti 1 "Sınırı 1" çalıştı sorgusu (ANDROID için) çok yararlı olur ...

EDIT "1" kullanarak aldığım hata ... belki de sınırım sorun değil mi? android.database.sqlite.SQLiteException: böyle bir kolon: Burada hata dateDESC: derleme sırasında: SEC dateDESC limit ile TEST SİPARİŞ tarihi, tekrarlar, ağırlık, 1

+8

Hatanız, "KEY_DATE +" DESC "yerine KEY_DATE +" DESC "' ye sahip olmanız, yani bir alanı kaçırmanızdı. –

cevap

101

Order by id DESC Limit 1:

db.query("table", null, "column=?", new String[]{"value"}, null, null, "id DESC", "1"); 
+0

Tamam .... ama "id DESC" nedir DESC ifadem var ama yanlış mı? – easycheese

+0

DESC sipariş türü anlamına gelir ... Z-A tipi –

+0

Doğru, biliyorum. Bu yüzden kodumda var. Yani en üstteki en yüksek tarih ile sıralar. Kodumda bulunan DESC ifadesinin zaten yanlış olduğunu mu söylüyorsunuz? – easycheese