我的表格如下:
ID | FLAG | audit
1 | 1 | 12
2 | 0 | 12
3 | 1 | 12
4 | 1 | 12
我想在FLAG列中计算1
的值,因此我使用此代码执行此操作:
databaseHandler
public int getall(){
String countQuery = "select count(audit) as jumlahaudit, SUM (CASE WHEN flag=1 " +
"THEN 1 ELSE 0 END) FROM API GROUP BY audit";
// still get 1 using this code
// String countQuery = "select flag, count(*) from API group by flag ";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor= db.rawQuery(countQuery, null);
return cursor.getCount();
}
MainActivity
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db.getall();
Log.d("COba yang ke dua", String.valueOf(db.getall()));
}
}
我预计logcat会得到3
的结果,但logcat会显示1
,即使我正在使用其他查询,
任何人都可以帮助我吗?
答案 0 :(得分:1)
cursor.getCount()
将返回行数。所以你的查询结果是" 3"但" 1"一排。像这样:
Count
-----
3 (1 row)
正确的代码应该是
cursor.getInt(0);
用于阅读" 3"