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

前端之家收集整理的这篇文章主要介绍了sqlite的rawQuery和query的一个问题总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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.

参考是:点击打开链接

原文链接:https://www.f2er.com/sqlite/200173.html

猜你在找的Sqlite相关文章