带有WHERE子句的SQLite rawQuery()返回计数

时间:2019-02-28 12:32:38

标签: android sqlite

我有一个方法,该方法需要某些字符串并将其搜索到sqlite数据库中。如果字符串在数据库中存在/不存在,则应返回int count(行数),我该如何实现?

这是我针对该特定功能的代码,即使我在databse中存在指定的String,每次运行它都将返回零。

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 :(得分:0)

签出此代码。

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;
}

答案 1 :(得分:0)

也许字符串是列的一部分,所以需要for $v at $pos in $values/xs:decimal(.) group by $chunk := ($pos - 1) idiv 8 return xs:string(sum($v))代替=

LIKE