我有一个类似于以下sql字符串的rawQuery()
:
selectionArgs = new String[] { searchString };
Cursor c = db.rawQuery("SELECT column FROM table WHERE column=?", selectionArgs);
但是现在我必须在搜索中包含通配符,因此查询看起来像这样:
SELECT列,来自表WHERE列,如“searchstring%”
但是,当查询包含单引号时,将引发以下SQLite异常:
android.database.sqlite.SQLiteException: bind or column index out of range
如何在带有通配符元素的SQL查询中运行带有selectionArgs的rawQuery?
最佳答案
您必须将%
附加到selectionArgs本身:
selectionArgs = new String[] { searchString + "%" };
Cursor c = db.rawQuery("SELECT column FROM table WHERE column=?", selectionArgs);
注意:因此
%
字符串中的_
和searchString
仍然可以用作通配符!