Android Studio Sqlite同名仅1次上市
Android Studio Sqlite same name only 1 time listing
正在尝试学习 Android 工作室。我希望您在 this.I 上使用 sqlite 添加和列出数据方面提供帮助。
例如;
id-name-value
1 - 约翰 - 100
2 - 标记 - 200
3 - 约翰 - 150
4 - 约翰 - 200
5 - 亚当 - 400
我想做的,只列出一次名字。
1 - 约翰
2 - 标记
3 - 亚当
private void showlist() {
ArrayList<DataListItems> contactList = new ArrayList<DataListItems>();
contactList.clear();
String query = "SELECT * FROM data ";
Cursor c1 = sqlHandler.selectQuery(query);
if (c1 != null && c1.getCount() != 0) {
if (c1.moveToFirst()) {
do {
DataListItems contactListItems = new DataListItems();
contactListItems.setid(c1.getString(c1
.getColumnIndex("id")));
contactListItems.setName(c1.getString(c1
.getColumnIndex("name")));
contactListItems.setValue(c1.getString(c1
.getColumnIndex("value")));
contactList.add(contactListItems);
} while (c1.moveToNext());
}
}
c1.close();
DataListAdapter contactListAdapter = new DataListAdapter(
SiteList.this, contactList);
lvCustomList.setAdapter(contactListAdapter);
}
您可以使用GROUP BY name
到select只有一个名字。但是,id selected 将是每个组(名称)的任意 id。
- 您的代码可以使用
String query = "SELECT * FROM data GROUP BY name";
如果您想要每个名称的 first/lowest id,那么您可以将 min(id) 与 GROUP BY NAME 结合使用。
- 您的代码可以使用
String query = "SELECT min(id) AS id, name, value FROM data GROUP BY name";
你说你的预期结果应该是
1 - john
2 - mark
3 - adam
因为 adam 的 id 是 5 而不是 3(我假设只是打字错误)。
正在尝试学习 Android 工作室。我希望您在 this.I 上使用 sqlite 添加和列出数据方面提供帮助。
例如;
id-name-value
1 - 约翰 - 100
2 - 标记 - 200
3 - 约翰 - 150
4 - 约翰 - 200
5 - 亚当 - 400
我想做的,只列出一次名字。
1 - 约翰
2 - 标记
3 - 亚当
private void showlist() {
ArrayList<DataListItems> contactList = new ArrayList<DataListItems>();
contactList.clear();
String query = "SELECT * FROM data ";
Cursor c1 = sqlHandler.selectQuery(query);
if (c1 != null && c1.getCount() != 0) {
if (c1.moveToFirst()) {
do {
DataListItems contactListItems = new DataListItems();
contactListItems.setid(c1.getString(c1
.getColumnIndex("id")));
contactListItems.setName(c1.getString(c1
.getColumnIndex("name")));
contactListItems.setValue(c1.getString(c1
.getColumnIndex("value")));
contactList.add(contactListItems);
} while (c1.moveToNext());
}
}
c1.close();
DataListAdapter contactListAdapter = new DataListAdapter(
SiteList.this, contactList);
lvCustomList.setAdapter(contactListAdapter);
}
您可以使用GROUP BY name
到select只有一个名字。但是,id selected 将是每个组(名称)的任意 id。
- 您的代码可以使用
String query = "SELECT * FROM data GROUP BY name";
如果您想要每个名称的 first/lowest id,那么您可以将 min(id) 与 GROUP BY NAME 结合使用。
- 您的代码可以使用
String query = "SELECT min(id) AS id, name, value FROM data GROUP BY name";
你说你的预期结果应该是
1 - john 2 - mark 3 - adam
因为 adam 的 id 是 5 而不是 3(我假设只是打字错误)。