我试图使用MATCH关键字从我的数据库查询结果中获取游标,如下所示
databaseHelper = new DatabaseHelper(this);
database= databaseHelper.getReadableDatabase();
data = database.query(DatabaseHelper.DATABASE_TABLE, Constants.FROM_MAINSCREEN, databaseHelper.COLUMN_TITLE + " MATCH ?", new String[]{"f*"}, null, null, null);
if(data!=null)
data.moveToFirst();
dataAdapter = new MyCursorAdapterMainScreen(this, data, 0);
listView.setAdapter(dataAdapter);
我收到错误如下
android.database.sqlite.SQLiteException: SQL logic error or missing database
答案 0 :(得分:1)
android.database.sqlite.SQLiteException:SQL逻辑错误或丢失 数据库
您的问题是您的查询,而且MATCH
确实是 1 。所以改成它:
"... LIKE ?", new String[] {"f%"}
现在应该可以了。
1 仅在FTS3和FTS4表中引入匹配,因此您的表必须是虚拟的,而不是普通的,因为您最有可能。
答案 1 :(得分:0)
默认情况下,MATCH
is not implemented:
MATCH运算符是match()应用程序定义函数的特殊语法。默认的match()函数实现会引发异常,对任何事情都没有用。但扩展可以使用更有用的逻辑覆盖match()函数。
您似乎可以使用GLOB
代替MATCH
。