我有一个包含 10 个表的数据库,每个表有 5 到 10 列,我希望整个数据库的记录不超过 500 条。
我想在应用程序中实现搜索功能,在整个数据库中搜索关键字并显示所有结果的自定义 ListView 。
我尝试寻找实现此方法的方法,但尚未在 android 中找到 SQLite 的解决方案。有SQL server implementations这个的。
我现在看到的方式是为每个表编写一个查询并搜索每一列,然后过滤结果以填充我的自定义 ListView 。
public Cursor searchDB(String query) {
return db.query(true, DB_TABLE,
new String[] { KEY_ROWID, KEY_COLUMN1, KEY_COLUMN2, ... KEY_COLUMN10},
KEY_COLUMN1 + " LIKE" + "'%" + query + "%' OR " +
KEY_COLUMN2 + " LIKE" + "'%" + query + "%' OR " + ...
KEY_COLUMN10 + " LIKE" + "'%" + query + "%'",
null, null, null, null, null);
}
感谢对此事的意见以及对实现的任何帮助。
最佳答案
我会将所有搜索内容作为一个数据库 View 移动到数据库中
CREATE VIEW [search] AS
select 't1' as tab, id as id, col1+col2+col3 as key from t1
union
select 't2' as tab, id as id, colA+colB+colC as key from t2
并有一个简单的查询来查找结果
select tab, id from search where key like '%12%'
如果您稍后决定需要额外的搜索字段或额外的搜索表,您只需更新数据库 View 即可
关于android - 在整个 SQLite 数据库中搜索关键字以在 Android 应用程序中实现搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36551823/