Android 如何获取所有不同的行,SQLite

Android 如何获取所有不同的行,SQLite,android,sqlite,date,unique,Android,Sqlite,Date,Unique,这是我的桌子: private static final String DATABASE_CREATE = "create table entry (_id integer primary key autoincrement, " + "date text not null, " + "velocity integer not null, " + "type text not null, " + "xCoord re

这是我的桌子:

private static final String DATABASE_CREATE =
        "create table entry (_id integer primary key autoincrement, "
        + "date text not null, " +
        "velocity integer not null, " +
        "type text not null, " +
        "xCoord real not null, " +
        "yCoord real not null, " +
        "color integer not null);";
我的listView由创建条目的日期填充。因此,我的listView如下所示:

December 25, 2011
December 25, 2011
December 25, 2011
December 26, 2011
December 26, 2011
December 27, 2011
December 25, 2011
December 26, 2011
December 27, 2011
因此,基本上,每次在数据库中保存条目时,它都会显示其创建日期。我设法选择了唯一的日期,因此相同的日期只显示一次,方法如下:

SELECT * FROM entry GROUP BY date
现在,我的listView如下所示:

December 25, 2011
December 25, 2011
December 25, 2011
December 26, 2011
December 26, 2011
December 27, 2011
December 25, 2011
December 26, 2011
December 27, 2011

我的问题是,当我在listView中单击一行时,如何获取与我单击的行具有相同日期的所有行。例如,如果我单击“2011年12月25日”,那么我希望查询返回与我单击的日期相同的3行的所有信息。

从日期为2011年12月25日的条目中选择*

您的数据库结构可能有点不符合数据库理论。您最好有两个表,以避免数据重复。这样,您可以显示列表中的第一个表,并且在该表中,所有数据(日期)都是不同的。然后,当用户单击时,您从第二个表中获取任何具有相同数据键的记录,然后您可以在第二个表中显示这些获取行中的所有其他内容

这是我的示例的正确答案,但比这要复杂一点。我想能够点击任何日期,并获得所有信息,无论我点击的日期。这只给我从2011年12月25日的信息。我不知道用户想看哪个日期。呃,他们不想看2011年12月25日吗?那怎么不是他们点击的日期?我不明白这两者的区别。好吧,我想我明白我们在谈论什么。您想知道如何将
ListView
元素映射到日期上,以便使用该日期填充数据库查询。问题更多的是如何使用
列表视图,而不是数据库查询。我说得对吗?嗯,我需要一个适用于所有日期的查询。假设listView中有100个日期,您可以点击查看。我永远不会知道用户点击的日期,对吗?因此,我需要一个查询,它可以处理用户在listView中单击的任何日期,并显示他当天创建的条目。是的,我不知道如何让listView知道用户点击的日期。这是个好主意。我试着用两个独立的表,一个只有列日期,另一个和上面我的完全一样。然后我用只包含日期的表填充listView,但我不能100%确定如何连接这些表。我试过完全加入,但没用。有什么想法吗?