计算与数据库中的键匹配的所有字符串

时间:2016-01-29 20:32:33

标签: android sql sqlite

我有一个包含大约6,000条记录的SQLite数据库。我想搜索数据库并计算与我正在寻找的密钥匹配的字符串数。 我尝试了以下代码,它返回包含密钥的行数:

 String selectQuery = "SELECT count(*) FROM " + TABLE_NAME + " WHERE "
                + TEXT_COLUMN + " LIKE '%" + word + "%'";

c = mDb.rawQuery(selectQuery, null);
if (c != null && c.getCount() > 0) {
      c.moveToFirst();
      count = c.getInt(0);
}

但我想计算与该键匹配的字符串数,即使一行包含多个。

有办法吗?

2 个答案:

答案 0 :(得分:0)

您可以通过循环所有行来计算事件。 这是代码段 -

int count=0;
        String selectQuery  = "SELECT  *  FROM " + TABLE_NAME + " WHERE "
                + TEXT_COLUMN + " LIKE '%" + word + "%'";
        c = mDb.rawQuery(selectQuery, null);
        if (c != null ) {
            while (c.moveToNext()){
                for (int i=0;i<c.getColumnCount();i++){

                    if (c.getString(i).contains(word))//Handle the case of letters if needed.
                        count++;
                }
            }
            c.close;
        }

答案 1 :(得分:0)

基于@Stan Shaw的建议:

这就是我解决它的方法:它可能不是最好的解决方案,但它适用于我,并会使用它直到我遇到更好的解决方案。

首先,获取匹配字符串所在的所有行,然后将它们放在ArrayList中。

其次,ArrayList转换为String

第三,计算String中出现的次数。