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

これを試して ::

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 に答える
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 に答える