我想检查我的表中是否有与id_user对应的用户的记录,如果没有我将添加它。问题是我的Cursor.getCount()返回1并且它没有意义,因为我的表是完全空的。
Cursor c = db.rawQuery("SELECT count(*) FROM Users WHERE id_user = '"
+ jsonObj.getString("id_user") + "'", null);
Log.i("getUser cursor",c.getCount() + ""); // it prints 1
c.moveToFirst();
int ic = c.getInt(0);
Log.i("getUser count2", ic + ""); // it prints 0
为什么c.getCount()在没有任何记录时给我1。但是,c.getInt(0)似乎工作正常。
由于
答案 0 :(得分:2)
因为您的查询中有一行。
Select count(*)
将返回包含记录计数的一行。记录数为0,因此返回一行,包含值0.
Select *
然后
c.getCount()
会返回你期望的0,因为你要拉回所有行,(不是行数)并且没有行。但这是一个糟糕的方法,因为它可以撤回额外的数据并且可能很慢。
在这种情况下
int ic = c.getInt(0);
是获取所需数据的正确方法。