0

我有这个选择查询来从 android 手机联系人的 sqlite 数据库中获取行。

String selection = ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'"
           + " AND "+ContactsContract.Data.DATA10+ " = '" + select + "'";

Log.d(LOG_TAG,"selection in update data"+selection);

c = mContext.getContentResolver().query(CONTENT_URI, Projection,selection, null, null);

在哪里select = +12244004242

我成功地获取了 reqd 数据。但是我的要求是如果我有多个字符串。即字符串数组。我如何编写查询?

我正在与

String selection = ContactsContract.Data.DATA10 IN ("+select+")";

在哪里select = +12244004242,+12244004245,+12244004248

但是我没有得到任何值。请帮我编写选择查询。

4

3 回答 3

1

尝试使用 IN(" + select + ")

选择 = "'+12244004242','+12244004245','+12244004248'"

于 2012-07-04T08:50:14.670 回答
0

您可以执行嵌套 OR:

所以:

select = +12244004242 OR select=+12244004245 OR select=+12244004248
于 2012-07-04T08:31:15.557 回答
0

您可以尝试使用事务查询,这就是我从我的 sqlite 数据库中提取数据的方式,例如:

db = window.openDatabase("DBID", "1.0", "DBName", 50000000);
db.transaction(TableName, errorCB, successCB);
tx.executeSql('SELECT Col1, Col2 FROM TableName WHERE Col1="'+ test +'";', [], querySuccess, errorCB);

function querySuccess(tx, result) 
{
    // DO SOMETHING HERE
}

function errorCB(tx, err) {
    alert("Error processing SQL: "+err.message);
}
于 2012-07-04T09:33:11.983 回答