Android数据库查询

时间:2010-08-15 21:11:43

标签: android

我有一个包含3列的数据库表:_id,name,groupName

看起来与此类似:

1 Tom group1

2 Sam group1

3 Ted 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)。

有没有办法只获得独特的群体? (所以我最终得到一个光标:( group1,group2,group3)

提前致谢。

3 个答案:

答案 0 :(得分:1)

我认为您需要使用带有DISTINCT关键字的原始SQL查询。粗糙的代码就像:

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

以下是关于关键字http://www.sql-tutorial.com/sql-distinct-sql-tutorial/

的SQL教程

答案 1 :(得分:1)

尝试类似

的内容
db.rawQuery("select distinct column1, column2, column3 from tablename", null);

答案 2 :(得分:1)

哇。我想到了。我只是张贴这个来帮助那些可能和我有同样问题的人。

成功构建查询的步骤(适用于Android dev):

1)下载并启动“RazorSQL”

2)连接到您的数据库(按照屏幕上的说明进行操作)

3)点击“DB Tools” - > “查询构建器” - > “您的数据库表名称”

4)以图形方式构建您的查询(使用所有内容,然后单击“生成SQL”)

5)复制SQL语句,并将其粘贴到RazorSQL编辑器窗口

6)单击绿色箭头(“ - >”)。您的查询现在在您的数据库上执行,并显示结果!

7)复制SQL语句,转到“Eclipse”(Android开发环境)并将其作为字符串粘贴到rawQuery()函数中

酷!

所以,我的问题的正确答案是:

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

- >我通过在图形SQL构建器

中玩游戏发现了“GROUP BY”

享受SQL查询的乐趣!