尝试学习Android Studio。我希望得到您的帮助。我正在使用sqlite添加和列出数据。
例如;
id-名称-值
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);
}
答案 0 :(得分:0)
您可以使用GROUP BY name
仅选择一个名称。但是,所选的 id 将是每个组(名称)的任意ID。
String query = "SELECT * FROM data GROUP BY name";
如果您想要每个名称的第一个/最低 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(我认为这只是键入错误)。 / p>