我有一个三列数据库,其中 Android 搜索对话框工作正常。但我希望能够从两个不同的列中输入作品或短语,并让它返回搜索短语在一个或另一列或两列中的所有结果。我正在使用以下方法:
//--- GET RECORDS FOR SEARCH
public Cursor searchDB(String query) {
return db.query(true, DB_TABLE, new String[] { KEY_ROWID, KEY_COLUMN1, KEY_COLUMN2,
KEY_COLUMN3 }, KEY_COLUMN1 + " LIKE" + "'%" + query + "%' OR " + KEY_COLUMN2 +
" LIKE" + "'%" + query + "%' OR " + KEY_COLUMN3 + " LIKE" + "'%" + query + "%'",
null, null, null, null, null);
}
//--- END Get Records for Search
因此,如果您有这样的数据库,这可以正常工作:
COL1 COL2 COL3
______________________
Hi there guys
how are you
你在“嗨”上搜索它会返回“嗨,伙计们”。但我想要做的是搜索“你好”并让它返回所有三列的整行 - “嗨,伙计们”。我尝试添加:
OR "+ KEY_COLUMN2 + KEY_COLUMN3 + " LIKE" + "'%" + query + "%'"
但这会在运行搜索时使搜索崩溃。