2010-08-15 80 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查询的乐趣!