Android SQLite DISTINCT запрос не работает с rawQuery () - PullRequest
0 голосов
/ 24 сентября 2019

Я использую rawQuery() и DISTINCT с базой данных SQLite в моем проекте, но запрос не работает, я получаю все результаты вместе с повторениями.Я использую следующую функцию kotlin:

fun getCompanies(): ArrayList<String> {
    val db: SQLiteDatabase = this.readableDatabase
    val cursor = db.rawQuery("SELECT DISTINCT company_id FROM customer_cart", null)
    val list: ArrayList<String> = ArrayList()
    if (cursor.count > 0) {
        cursor.moveToFirst()
        var count = cursor.count
        while (count > 0) {
            val companyID = cursor.getString(0)
            list.add(companyID)
            count--
            moveToNext()
        }
    } else {
        Toast.makeText(context, "No item found", Toast.LENGTH_LONG).show()
    }
    return list
}

Ответы [ 3 ]

3 голосов
/ 24 сентября 2019

Первая проблема: вы забыли подробно указать свою проблему.

Другая проблема: вы читаете одну и ту же строку снова и снова.Вам нужно вызвать cursor.moveToNext(), чтобы перейти к следующей строке результатов в цикле.

1 голос
/ 24 сентября 2019
public Cursor query (boolean distinct, String table, 
                     String[] columns, String selection, 
                     String[] selectionArgs, String groupBy, 
                     String having, String orderBy, String limit)

это код в Java, который я использовал для использования в своем запросе Different, это работает для меня

0 голосов
/ 24 сентября 2019

использование cursor.moveToNext();

for (int i = 0; i < cursor.getCount(); i++) {
 //do herer
 cursor.moveToNext();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...