我有一个包含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)
提前致谢。
答案 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查询的乐趣!