猿问

SQLiteDatabase.query方法

我正在使用SQLiteDatabase的查询方法。如何使用查询方法?


我尝试了这个:


Cursor cursor = sqLiteDatabase.query(

    tableName, tableColumns, whereClause, whereArgs, groupBy, having, orderBy);

tableColumns-列参数的构造如下。


String[] columns = new String[]{KEY_ID, KEY_CONTENT};

如果需要获取所有字段,那么应该如何构造column参数。我们是否需要在字符串数组中包括所有字段名称?


如何正确使用查询方法?


慕森卡
浏览 6332回答 3
3回答

犯罪嫌疑人X

这是一个更通用的答案,旨在为将来的观众快速参考。例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子句。

宝慕林4294392

where子句和args一起形成SQL查询的WHERE语句。所以说你想表达WHERE Column1 = 'value1' AND Column2 = 'value2'然后您的whereClause和whereArgs将如下所示String whereClause = "Column1 =? AND Column2 =?";String[] whereArgs = new String[]{"value1", "value2"};如果要选择所有表列,我相信传递给tableColumns的空字符串就足够了。
随时随地看视频慕课网APP

相关分类

Android
我要回答