我构建选择字符串以跨多列执行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)
当我使用硬编码的搜索词替换MATCH参数字符串中的问号并设置selectionArgs = null
时,查询将起作用并返回正确的结果。
如何将selectionArgs绑定到搜索多列的FTS3查询?
答案 0 :(得分:0)
以下方法对我有用:
String.format()
构建selectionArgs
,使用搜索字词作为参数。selection
在代码中:
final String selection = "table MATCH ?"
final String[] selectionArgs = { String.format("column1:%s* OR column2:%s*", term1, term2) };