我有一个 rawQuery()
和下面类似的 sql 字符串:
selectionArgs = new String[] { searchString };
Cursor c = db.rawQuery("SELECT column FROM table WHERE column=?", selectionArgs);
但现在我必须在我的搜索中包含一个通配符,所以我的查询看起来像这样:
SELECT column FROM table WHERE column LIKE '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
字符串中的 %
和 _
仍然可以用作通配符!
关于java - Android:带通配符的 SQL rawQuery (%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934854/