SQLite rawQuery () с предложением WHERE для возврата количества - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть метод, который берет определенную строку и ищет ее в базе данных sqlite.Если строка существует / не существует в базе данных, она должна вернуть int count (количество строк). Как я могу этого достичь?

Вот мои коды для этой конкретной функции, каждый раз, когда я запускаю ее, возвращаю ноль, дажеесли указанная строка существует в базе данных.

public int getMsgCount(String msgQuery) {
    String countQuery = "SELECT count(*) FROM " + MsgModal.TABLE_NAME + " WHERE " + MsgModal.COLUMN_MSG  + "= '" +msgQuery +"'";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    cursor.moveToFirst();
    int count = cursor.getInt(0);
    cursor.close();
    // return count
    return count;
}

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Возможно, строка является частью столбца, поэтому вместо = вам нужно LIKE:

String countQuery = 
  "SELECT count(*) FROM " + MsgModal.TABLE_NAME + " WHERE " + MsgModal.COLUMN_MSG + " LIKE '%" + msgQuery + "%'";
0 голосов
/ 28 февраля 2019

Проверьте этот код.

public int countRow(String query) {
    int count = 0;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    count = cursor.getCount();
    cursor.close();
    db.close();
    return count;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...