Подтвердить что ты не робот

Выберите отдельное значение в android sqlite

Я пытаюсь запустить следующий необработанный запрос в android, кажется, не работает

String query ="SELECT DISTINCT category FROM event";
Cursor  cursor = mDb.rawQuery(query, null);
if (cursor != null) {
     cursor.moveToFirst();
}
return cursor; 

поэтому я решил использовать метод query() в android, что-то вроде

Cursor mCursor = mDb.query(EVENT_TABLE, new String[] {KEY_ROWID, KEY_CAT}, null, null,null,null, null)

Может ли кто-нибудь показать мне, как выбрать отдельную категорию для использования query() вместо rawquery, пожалуйста, любая помощь будет принята с благодарностью!

4b9b3361

Ответ 1

Вы можете использовать этот метод:

public Cursor query (boolean distinct, String table, 
                     String[] columns, String selection, 
                     String[] selectionArgs, String groupBy, 
                     String having, String orderBy, String limit)

Здесь первый аргумент указывает, следует ли использовать отдельный или нет.

Ответ 2

Но вы ДОЛЖНЫ помнить, чтобы отправить аргумент в GROUPBY (NOT NULL send).

Вы должны указать имя столбца для distinct.

Пример:

Cursor cursor = db.query(true, YOUR_TABLE_NAME, new String[] { COLUMN_NAME_1 ,COLUMN_NAME_2, COLUMN_NAME_3 }, null, null, COLUMN_NAME_2, null, null, null);

true - отличный TRUE

COLUMN_NAME_2 - введите столбец, что у вас есть DISTINCT.

Это работает для меня хорошо.

Ответ 3

Существует несколько способов, как уже отмечено зеленым. Но если кто-то хочет получить его через сырой запрос, то здесь вы идете:

String query = "SELECT DISTINCT(category) FROM event";

Ответ 4

Cursor res=db.rawQuery("select column1 column2...  Distinct column3 from "+Table_name, null);

column3 - это отдельный столбец