我有一个Room数据库,其中包含一些来自改造的数据,我在此基础上创建搜索,但是当我写完整标题(而不是单词)时,此方法可以搜索并起作用。 例如,我要搜索乌干达,而我的应用找不到与乌干达相比的数据。但是,当我写《乌干达:干旱造成500头母牛死亡》(完整标题)时,我的应用发现了这篇文章。
它比我用于搜索的DAO和代码
//DAO
@Dao
public interface NewsDao {
@Query("SELECT * FROM news WHERE title LIKE :search OR content LIKE :search OR publishedAt LIKE :search ")
List<News> searchInDatabase(String search);
}
// part of code than searchs
@Override
public boolean onQueryTextChange(String newText) {
if (newText != null && !newText.isEmpty()) {
newsAfterSearch = newsDao.searchInDatabase(newText);
displayData(newsAfterSearch);
} else displayData(news);
return false;
}
答案 0 :(得分:0)
您可以在查询中使用LIKE
:
SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern;
例如选择所有名称以a
开头的客户:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
对于您来说,是这样的(选择所有具有CustomerName且在任何位置都带有“或”的客户):
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
参考:W3Schools