为了账号安全,请及时绑定邮箱和手机立即绑定

SQLiteDatabase.query方法

SQLiteDatabase.query方法

慕森卡 2019-10-14 15:19:21
我正在使用SQLiteDatabase的查询方法。如何使用查询方法?我尝试了这个:Cursor cursor = sqLiteDatabase.query(    tableName, tableColumns, whereClause, whereArgs, groupBy, having, orderBy);tableColumns-列参数的构造如下。String[] columns = new String[]{KEY_ID, KEY_CONTENT};如果需要获取所有字段,那么应该如何构造column参数。我们是否需要在字符串数组中包括所有字段名称?如何正确使用查询方法?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

这是一个更通用的答案,旨在为将来的观众快速参考。



SQLiteDatabase db = helper.getReadableDatabase();


String table = "table2";

String[] columns = {"column1", "column3"};

String selection = "column3 =?";

String[] selectionArgs = {"apple"};

String groupBy = null;

String having = null;

String orderBy = "column3 DESC";

String limit = "10";


Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);

文档中的解释


table 字符串:编译查询所依据的表名。

columns 字符串:要返回的列的列表。传递null将返回所有列,不建议这样做,以防止从不会使用的存储中读取数据。

selection 字符串:声明返回哪些行的过滤器,格式为SQL WHERE子句(不包括WHERE本身)。传递null将返回给定表的所有行。

selectionArgs 字符串:您可以在选择中包括?s,它们将被selectionArgs中的值替换,以便它们出现在选择中。这些值将绑定为字符串。

groupBy 字符串:一种声明如何对行进行分组的过滤器,格式为SQL GROUP BY子句(不包括GROUP BY本身)。传递null将导致行不被分组。

having 字符串:一个过滤器,如果正在使用行分组,则声明要包括在游标中的行组,其格式设置为SQL HAVING子句(不包括HAVING本身)。传递null将导致包括所有行组,并且在不使用行分组时是必需的。

orderBy 字符串:如何对行进行排序,格式为SQL ORDER BY子句(不包括ORDER BY本身)。传递null将使用默认的排序顺序,该顺序可能是无序的。

limit 字符串:限制查询返回的行数,格式为LIMIT子句。传递null表示没有LIMIT子句。


查看完整回答
反对 回复 2019-10-14
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

where子句和args一起形成SQL查询的WHERE语句。所以说你想表达


WHERE Column1 = 'value1' AND Column2 = 'value2'

然后您的whereClause和whereArgs将如下所示


String whereClause = "Column1 =? AND Column2 =?";

String[] whereArgs = new String[]{"value1", "value2"};

如果要选择所有表列,我相信传递给tableColumns的空字符串就足够了。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 6226 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信