1

在尝试提出计算级别“2”中字母“B”数量的命令时,我遇到了一些麻烦。

_id|letter|level
0   A      1
1   A      1
2   B      1
3   A      2
4   B      2
5   A      2
6   B      2
7   B      2
8   B      2
9   B      2

这是迄今为止我在 DBAdapter 中的“代码”。

public long getNumberCorrect() {
        int i = 0;
        String query = "SELECT **NUMBER OF LETTER B** FROM table WHERE level = 2";
        Cursor  cursor = mDb.rawQuery(query,null);
        if (cursor.moveToFirst()) {
                 while (cursor.isAfterLast() != true) {

                  }
        }
        return i;

    }

理想情况下,上面的代码将返回 5,但我不知道用什么替换“ NUMBER OF LETTER B ”。

4

5 回答 5

1

你试过使用count(*)吗?

Something like:
String query = "SELECT count(*) FROM table WHERE level = 2 and letter='B'";
Cursor  cursor = mDb.rawQuery(query,null);
if (cursor.getCount() >0 && cursor.moveToFirst()) {
   i = cursor.getInt(1);
}
return i;
于 2012-11-27T08:21:28.667 回答
0

你可以这样做 :

String sqlite = "SELECT count(_id) AS _lCount FROM table WHERE level = 2 and letter='B'";
Cursor  cursor = mDb.rawQuery(query,null);
if(cursor != null){
  if(cursor.getCount() > 0){
    cursor.moveToFirst();
    int count = cursor.getInt(cursor.getColumnIndex("_lCount"));

  }
}

这应该可以解决问题。:)

于 2012-11-27T08:23:45.933 回答
0

尝试这个 ::

SELECT count(*) FROM table WHERE level = 2 and letter='B'

或者你可以

SELECT count(id) FROM table WHERE level = 2 and letter='B'
于 2012-11-27T08:20:05.107 回答
0

这是一个很好的要求:

select count(*) from table where level=2 AND letter like 'B'
于 2012-11-27T08:20:12.003 回答
0

编写以下查询

String query = "SELECT COUNT(*) FROM table WHERE level = 2 AND letter='B'";
于 2012-11-27T08:20:22.257 回答