Android Sqlite Like运算符" OR"语句

时间:2017-05-10 11:12:20

标签: android sqlite android-sqlite

我正在尝试检查是否在三列之一中找到了查询 但是,仅在提到的第一列中搜索查询:

 string[] a = new string[1];
 a[0] = '%' + query + '%';

 var sqldb_query = "SELECT * FROM MYTABLE WHERE Col_1 LIKE ? OR Col_2 LIKE ? OR Col_3 LIKE ?";
 var sqldb_cursor = myDb.RawQuery(sqldb_query, a);

它只查找Col_1中的查询,而不查找其他查询 我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

您永远不会为查询中的第二个和第三个LIKE表达式绑定参数。编辑:如果要多次使用相同的LIKE表达式,则仍需要多次绑定占位符。

string[] a = new string[3];
string likeString = '%' + query + '%';
a[0] = '%' + query + '%';
a[1] = '%' + query + '%';
a[2] = '%' + query + '%';

var sqldb_query = "SELECT * FROM MYTABLE WHERE Col_1 LIKE ? OR Col_2 LIKE ? OR Col_3 LIKE ?";
var sqldb_cursor = myDb.RawQuery(sqldb_query, a);