我构造选择字符串以跨多个列执行 FTS3 搜索:
final String selection = "table MATCH 'column1:? OR column2:?'"
我还传递了包含搜索词的 selectionArgs 。问题是我在参数绑定期间遇到异常:
11-30 13:22:27.475 26281-26323/com.example.myapp W/SuggestionsAdapter:搜索建议查询抛出异常。java.lang.IllegalArgumentException:无法在索引 2 处绑定参数,因为索引超出范围。该语句有 0 个参数。在 android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212) 在 android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166)
当我用硬编码的搜索词和 set 替换 MATCH 参数字符串中的问号时selectionArgs = null
,查询会起作用并返回正确的结果。
如何将 selectionArgs 绑定到跨多列搜索的 FTS3 查询?