我有一个类似于以下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仍然可以用作通配符!

08-06 11:30