Как я могу получить точное слово в предложении - PullRequest
3 голосов
/ 09 июля 2019

Если я делаю этот запрос, я ищу в поле, которое содержит:

[Вода, кокс, 7up]

[Кока-вода, 7up]

Так, затем я хочу также вернуть эти элементы, даже если параметр написан заглавной буквой, для этого я использую это @Query

@Query("SELECT * from drinksList WHERE list LIKE '%'||:name||'%'")

Чего мне не хватает?

РЕДАКТИРОВАТЬ

Сейчас я использую LIKE %param%, но проблема в том, что если стол такой:

[Вода, кокс, 7up]

[Кока-кола, ватерера,7up]

[Waterg3d, кокс, 7up]

[Coke, water23, 7up]

И я хочу найти «водяной», который покажет все этизаписи, и я просто хочу найти слово «вода» не имеет значения, если это строчные или прописные.

1 Ответ

3 голосов
/ 09 июля 2019

Должно работать следующее: -

@Query("SELECT * from drinksList WHERE list||',' LIKE '%'||:name||',%' OR list||',' LIKE :name||',%'")

Это основано на / было проверено с использованием: -

DROP TABLE IF EXISTS DrinksList;
CREATE TABLE IF NOT EXISTS DrinksList (list TEXT UNIQUE NOT NULL);
INSERT INTO DrinksList VALUES
    ('Water, spicy, coke'),             -- Should be found when searching for water
    ('Coke'),                           -- will not be found when seraching for water
    ('Spicy, water, coke'),             -- Should be found
    ('Coke, spicy, water'),             -- Should be found
    ('wateria, spicyer, cokeer'),       -- should not be found
    ('Water, coke, 7up'),               -- should be found
    ('Coke, waterera, 7up'),            -- should not be found
    ('Waterg3d, coke, 7up'),            -- should not be found
    ('Coke, water23, 7up')              -- should not be found
    ;
SELECT * from drinkslist WHERE list||',' LIKE '%'||'water'||',%' OR list||',' LIKE 'water'||',%';

В результате: -

enter image description here

Выше был проверен, и он работает в комнате в соответствии с: -

Отображение всех списков: -

enter image description here

Ввод wAtER в тексте редактирования и нажатие кнопки Выборочно приводит к: -

enter image description here

Ввод 7Up : -

enter image description here

и т. Д.

Запрос: -

@Query("SELECT * FROM DrinkList WHERE list||',' LIKE '%'||:name||',%' OR list||',' LIKE :name||',%'")
List<DrinkList> getSelectiveDrinks(String name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...