Как написать select-where-column = уникальный запрос в Android - PullRequest
1 голос
/ 17 декабря 2010

Я не могу написать запрос select-where-unique для моей базы данных. Мне удалось запросить мою базу данных, используя предложение where с помощью:

        Cursor mCursor =
                db.query(true, DATABASE_TABLE, new String[] {
                        KEY_ROWID,
                        KEY_KEYWORD}, 
                        KEY_TIME + "=" + strtime, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);

Может кто-нибудь помочь мне вставить ключевое слово "DISTINCT" для столбца KEY_KEYWORD?

Спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 20 декабря 2010

Следующее сработало для меня:

                Cursor mCursor =
                db.query(true, DATABASE_TABLE, new String[] {
                        KEY_KEYWORD}, 
                        KEY_TIME + "=" + strtime, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;

Спасибо Desiderio и Лучо за попытку помочь.

2 голосов
/ 17 декабря 2010

Пожалуйста, попробуйте это:

Cursor mCursor = 
                db.query(true, DATABASE_TABLE, new String[] { 
                        KEY_ROWID, 
                        KEY_KEYWORD},  
                        null,  
                        null, 
                        KEY_KEYWORD,  
                        null,  
                        null,  
                        null); 

и дайте мне знать, если это работает.

0 голосов
/ 17 декабря 2010

Возможное решение вашей проблемы - использовать класс SQLiteQueryBuilder.

Пример:

Запрос: ВЫБЕРИТЕ РАЗЛИЧНЫЕ A.x ОТ A, B, ГДЕ A.ID = B.ID

SQLiteQueryBuilder sqLiteQueryBuilder = new SQLiteQueryBuilder();
sqLiteQueryBuilder.setTables("A, B");
sqLiteQueryBuilder.setDistinct(true);

String selection =  "A.ID = B.ID"; 

Cursor c = sqLiteQueryBuilder.query(db, 
    new String[]{"A.x"}, 
    selection, 
    null, 
    null, 
    null, 
    null);

Ура!

...