我有一个包含大约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);
}
但我想计算与该键匹配的字符串数,即使一行包含多个。
有办法吗?
答案 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
中出现的次数。