加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite的rawQuery和query的一个问题总结

发布时间:2020-12-12 19:55:04 所属栏目:百科 来源:网络整理
导读:前几天在论坛上问了一个问题,有人解答了,我总结下来,以后可以用到 自己先建立一个空表,继而用以下方法得到表中数据的个数 String sql = "select count(*) from " + TABLENAME; return sqLiteDatabase.rawQuery(sql,null).getCount(); 发现返回的是1,而

前几天在论坛上问了一个问题,有人解答了,我总结下来,以后可以用到

自己先建立一个空表,继而用以下方法得到表中数据的个数

String sql = "select count(*) from " + TABLENAME;
        return sqLiteDatabase.rawQuery(sql,null).getCount();

发现返回的是1,而不是0.

但是用下面这个方法就对了

return sqLiteDatabase.query(TABLENAME,null,null).getCount();


原因是这样的:

因为sqLiteDatabase.rawQuery(sql,null)的返回值是Cursor游标,也就是说,你的cursor的记录数是1,你可以使用以下代码利用cursor,取得查询的记录数,空表的话也就是0啦。



Cursor cursor = sqLiteDatabase.rawQuery(sql,null);
cursor.moveToFirst();
return cursor.getLong(0);


rawQuery和query构造的sql语句不一样,得到结果的cursor也不一样。
rawQuery的sql语句是select count(*) from ,cursor的结果是一条记录,里面是0,getCount()=1
query的sql语句是select * from,cursor没有记录,getCount()=0


cursor.getCount()


return the number of rows in database table.

参考是:点击打开链接

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读