从sqlite获取数据?

时间:2017-04-21 07:47:04

标签: android sqlite android-sqlite

我有一个包含四个字段的表:

enter image description here

我想获取RegionName(Pune,Delhi)或ProjectName(TPQ)的数据 我的预期结果是Checklist4,checklist1和checklist3。

如何为此编写SQLite查询?

2 个答案:

答案 0 :(得分:2)

我认为您的主要问题是SQL查询,您实际上是指使用" OR"关键字而不是" AND"就像你在脑海里一样......

" OR"关键字将返回满足任何条件的结果,因此RegionName可以是两个值之一(Pune,Delhi)或ProjectName可以是TPQ。

相反," AND"关键字将返回满足所有条件的结果。在你的表中,为了返回一个结果,你应该有一个RegionName为" Pune"并且ProjectName是" TPQ"。

尝试以下假设您的表被调用" TableName":

Cursor c = myDatabase.rawQuery("SELECT CheckListName from TableName where RegionName IN ('Pune', 'Delhi') OR ProjectName ='TPQ'", null);

答案 1 :(得分:0)

另一种查询语法(我更喜欢)是:

String[] params = {"Pune", "Delhi", "TPQ"};
String query = "SELECT CheckListName FROM YourTableName WHERE RegionName IN (?, ?) OR ProjectName =?";

Cursor cur = db.rawQuery(query, params);

只需将YourTableName替换为您的桌子的实际名称。

这不仅自动处理字符串值(通过添加单引号和加倍撇号),还可以对抗SQL注入。

注意:参数的顺序是位置。这意味着第一个占位符(?)将被参数数组中的第一个元素替换,依此类推。