android sqLite prob with where子句

时间:2011-06-18 23:14:22

标签: android

我正在构建一个选择查询的游标。 WHERE部分查找值是指一个变量,它是一个路径,因此它有几个句点。

查询不喜欢这个和错误,错误表示col不存在以名称命名,该名称是查找值,即带有停靠点的路径。如果我在变量上使用sqlEscape util,它不会导致错误,但查找失败。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

没有你的代码,很难说,但我猜你是把你的where子句放在一起这样:

String value = "some.thing.or.other";
String where = "FIELD = " + value;

尝试构建参数化的where子句

String value = "some.thing.or.other";
String where = "FIELD = ?";
SQLiteDatabase db = fDbOpener.getReadableDatabase();
Cursor results = db.query(TABLE_NAME, COLUMNS_LIST, where, new String[] { value }, null, null, null);

当你现在运行查询方法时,SQLite会将你的值专门替换为where子句作为一个值 - 它不会尝试以任何方式解释该值,因此它不会错误地将句号错误地用于语法。 / p>