2014-01-23 65 views
0

我需要幫助如何選擇獨特的android sqlite數據庫? 我曾嘗試這樣的查詢:android SQLITE查詢不同

cursor = db.rawQuery("SELECT DISTINCT nama_makanan FROM MAKANAN ORDER BY nama_makanan ASC", null); 
adapter = new SimpleCursorAdapter(this, R.layout.isi_makanan, cursor, new String[] {"nama_makanan", "kategori", "icon"}, new int[] {R.id.txt_namamakanan, R.id.txt_kategori, R.id.img_icon}); 

,但沒有結果表明...

感謝

+0

你確定你有數據你的數據庫? – manman

+0

是的,我敢肯定,當我使用select *從MAKANAN它顯示所有的數據..我在eclipse中使用類的數據庫。我稱之爲數據庫類來顯示數據庫。 – user3184152

回答

2
SELECT DISTINC 

應該是 - >

SELECT DISTINCT 

你缺少的T

+0

+1,現在是鷹眼捕捉:) – Vigbyor

+0

謝謝你的回答,是的,我的意思是截然不同...但它仍然沒有結果... 請幫助我...是Android的SQLite數據庫可以做選擇不同? – user3184152

+0

SQLite絕對支持SELECT DISTINCT - http://www.sqlite.org/lang_select.html – robnick

1

請嘗試以下方法,

cursor = db.rawQuery("SELECT DISTINCT(nama_makanan) FROM MAKANAN ORDER BY nama_makanan ASC", null); 
adapter = new SimpleCursorAdapter(this, R.layout.isi_makanan, cursor, new String[] {"nama_makanan", "kategori", "icon"}, new int[] {R.id.txt_namamakanan, R.id.txt_kategori, R.id.img_icon}); 
2

幾件事。

首先,發佈你的logCat,它總是有幫助的。其次,這很可能是因爲Android需要光標的_id列。第三,你只拉一列,並傳遞三個光標。如果你只想顯示nama_makanan,那麼只告訴適配器拉該列。

嘗試以下操作:

cursor = db.rawQuery("SELECT DISTINCT nama_makanan as _id FROM MAKANAN ORDER BY nama_makanan ASC", null); 
adapter = new SimpleCursorAdapter(this, R.layout.isi_makanan, cursor, new String[] {"_id"}, new int[] {R.id.txt_namamakanan}); 
基於評論

編輯答案:

cursor = db.rawQuery("SELECT DISTINCT nama_makanan as _id, kategori as kategori, icon as icon FROM MAKANAN ORDER BY nama_makanan ASC", null); 
adapter = new SimpleCursorAdapter(this, R.layout.isi_makanan, cursor, new String[] {"_id", "kategori", "icon"}, new int[] {R.id.txt_namamakanan, R.id.txt_kategori, R.id.img_icon}); 
+0

謝謝你的答案,我想顯示3列...我使用不同的,因爲字段nama_makanan有多個相同名稱的數據。 – user3184152

+0

我嘗試使用你的代碼,它的工作,但它只顯示一列..如果我需要3列的代碼? nama_makanan,kategori,圖標。 – user3184152

+0

這是不同的,你應該可以自己來,只是你的原始問題。問題是_id。我編輯了我的答案以反映你想要的內容。 – blindstuff

0

使用了相同的結果,這兩個查詢:

SELECT DISTINCT nama_makanan FROM Customers ORDER BY nama_makanan ASC; 

SELECT nama_makanan FROM Customers GROUP BY nama_makanan ORDER BY nama_makanan ASC;