2010-08-15 114 views
0

我有3列的數據庫表:_id,名稱,組名Android的數據庫查詢

它看起來與此類似:

1湯姆組別1

撒下組別1

3特德group2

4 Jerry group3

5 Me group3

我想查詢數據庫表中的groupName。我試過這個:

public Cursor getAllGroups() 
{ 
     return db.query(DATABASE_TABLE_1, new String[] {KEY_GROUP}, 
      null, null, null, null, null); 
} 

然後沿(:(group1,group1,group2,group3,group3)返回一個光標。

有沒有辦法只得到唯一的羣體? (所以我最終會與光標一起:(1組,第2組,第3組)

在此先感謝

回答

1

我認爲你需要使用原始SQL查詢使用DISTINCT關鍵詞粗略代碼會是這樣的:

db.rawQuery("select distinct groupName from "+DATABASE_TABLE_1, null); 

以下是有關關鍵字http://www.sql-tutorial.com/sql-distinct-sql-tutorial/

+0

我閱讀了本教程,它看起來像你發佈的代碼應該工作(但它不......)。 有誰知道教程,解釋如何創建SQL查詢 - 即如何使用rawQuery函數?我實際上需要一個光標在KEY_ID和KEY_GROUP_NAME列上。你如何製作一個將遊標返回多列的rawQuery?我知道如何使用常規查詢功能: db.query(DATABASE_TABLE_1,new String [] {KEY_ROWID,KEY_GROUP},null,null,null,null); 但如何用rawQuery做到這一點? – 2010-08-16 01:43:25

+0

我還沒有玩過它,但MOTODEVSTUDIO有一個工具來構建我認爲的問題 – schwiz 2010-08-16 02:40:56

1

嘗試像

db.rawQuery("select distinct column1, column2, column3 from tablename", null); 
SQL教程10
1

哇。我想到了。我只是發佈這個來幫助其他可能和我有同樣問題的人。

步驟就可以成功查詢建築物(爲Android開發人員):

1)下載並推出 「RazorSQL」

2)連接到你的數據庫(按照屏幕上的說明)

3)點擊「DB工具」 - >「查詢生成器」 - >「您的數據庫表名」

4)構建圖形化查詢(玩的一切,然後點擊「生成SQL」)

5)複製SQL語句,並將其粘貼到RazorSQL編輯器窗口

6)單擊綠色箭頭(「 - >」)。您的查詢現在在您的數據庫上執行,並顯示結果!

7)複製SQL語句,進入 「蝕」(Android開發環境),並粘貼爲一個字符串轉換爲rawQuery()函數

酷!

所以,正確回答我的問題是這樣的:

db.rawQuery("SELECT _id, groupName FROM titles GROUP BY groupName", null); 

- >我發現了 「GROUP BY」 通過在圖形SQL構建玩弄

與SQL查詢的樂趣!