Android Studio Sqlite с тем же именем только 1 раз список - PullRequest
0 голосов
/ 20 января 2019

Пытается освоить 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);

}

1 Ответ

0 голосов
/ 21 января 2019

Вы можете использовать GROUP BY name, чтобы выбрать только одно имя. Однако выбранный 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

Это было бы более сложно (и, возможно, бесполезно), поскольку идентификатор для Адам равен 5 , а не 3 (я предполагаю, что это просто ошибка ввода).

...