2012-11-27 63 views
1

當試圖拿出命令來計算級別「2」中字母「B」的數量時,我遇到了一些麻煩。從Android中的SQLite中檢索數據的計數

_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,但我不知道有雖然取代「字母B數」是什麼。

+1

sql 101:select count(*) – njzk2

回答

0

試試這個::

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

,或者你可以

SELECT count(id) FROM table WHERE level = 2 and letter='B' 
+1

'*'和'id'有什麼區別。 – EGHDK

+0

*將統計所有行,並且這裏的id是將是唯一的列名稱 在這種情況下兩個都會返回相同的計數 –

0

這是很好的要求:

select count(*) from table where level=2 AND letter like 'B' 
0

寫如下的查詢

String query = "SELECT COUNT(*) FROM table WHERE level = 2 AND letter='B'"; 
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; 
+0

不行,不知道如何使用該命令。 (*)把我扔掉了。不知道我是否在其中插入變量名稱或內容。 – EGHDK

+0

@eghdk您將能夠使用以下命令檢索計數結果:cursor.getInt(1)' – dan

+0

我應該使用AS_lCount作爲@ android-developer建議嗎? – EGHDK

0

你可以這樣做:

​​

這應該做的伎倆。 :)

相關問題