Как сделать поиск в базе данных комнат - PullRequest
0 голосов
/ 25 апреля 2019

У меня в базе данных комнат есть некоторые данные от модернизации, и я создаю поиск в этой базе, но этот метод поиска и работает, когда я пишу полное название (не слова). Например, я хочу поиск Уганда , и мое приложение не может найти данные, которые имеют Уганда . Но когда я пишу «Уганда: 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;
    }

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...