Android 具有匹配项的SQLite查询错误
我使用以下查询在SQLite中执行搜索Android 具有匹配项的SQLite查询错误,android,sqlite,Android,Sqlite,我使用以下查询在SQLite中执行搜索 public MatrixCursor listViewCursor(String query) { open(); Cursor dcursor = null; MatrixCursor cursor = new MatrixCursor(listviewColumns); Object[] listviewarray = null; String[] selectionArgs = new String[] {
public MatrixCursor listViewCursor(String query) {
open();
Cursor dcursor = null;
MatrixCursor cursor = new MatrixCursor(listviewColumns);
Object[] listviewarray = null;
String[] selectionArgs = new String[] { query };
System.out.println("Selectionarg = "+selectionArgs.toString());
if (query == null) {
try {// this works
dcursor = database.query(LA_DATABASE_TABLE, listviewColumns,
null, null, null, null, LA_TEST_NAME);
} catch (Exception e) {
e.printStackTrace();
}
} else
try {// this don't work!!!
dcursor = database.query(LA_DATABASE_TABLE, listviewColumns,
LA_TEST_NAME + " MATCH ?", new String[] { query }, null, null, null);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("dcursor count = "+dcursor.getCount());
listviewarray = new Object[dcursor.getColumnCount()];
if (dcursor.moveToFirst()) {
do {
for (int i = 0; i < dcursor.getColumnCount(); i++) {
listviewarray[i] = dcursor.getString(i);
}
cursor.addRow(listviewarray);
System.out.println(dcursor.getString(1));
} while (dcursor.moveToNext());
} else
return null;
close();
return cursor;
}
为什么会这样
编辑:
我使用
dcursor=database.query(LA_database_TABLE,listviewColumns,LA_TEST_NAME+“像”%”+query+“%”,null,null,null,null)修复了它但是我想知道为什么上面的代码不起作用。似乎?
没有被正确替换。请参见此处的FTS3和FTS4简介
并确保创建了这样的虚拟表
CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT);
不是这样的普通人
CREATE TABLE enrondata2(content TEXT);
我认为您应该将null传递给不可为null的cullumn,再次检查参数,并通知meI使用dcursor=database.query(LA_database_TABLE,listviewColumns,LA_TEST_NAME+“LIKE”%”+query+“%”,null,null,null,null,null)但是我想知道为什么上面的代码不起作用。似乎?
未正确更换。接受这个答案是因为这是唯一的答案。
CREATE TABLE enrondata2(content TEXT);