Использование LIKE для поиска в SQL - PullRequest
0 голосов
/ 14 июля 2020

У меня есть запрос SQL, как показано ниже.

select *
from table 
where content like '%' + search_content + '%' 

Если search_content = 'JAVA', он вернет данные, содержащие xxxJAVAxxx, что нормально.

Но если мой search_content = 'JAVA ABC XYZ', он не возвращает данные, содержащие xxxJAVAxxx. Это не тот случай, который мне нужен.

Как мне справиться с этой ситуацией?

1 Ответ

0 голосов
/ 14 июля 2020

Рассматривая ваш пример, вы можете добавить условие OR , чтобы охватить все случаи: контент содержит, начинается или заканчивается желаемой строкой.

select *
from table 
where (content like '%JAVA%' or content like 'JAVA%' or content like '%JAVA')

Более элегантный способ (если вы используя postgres)

select *
from table
where position('JAVA' in content) > 0

Что он делает? Он находит позицию, в которой подстрока 'JAVA' может быть найдена в содержимом. Если подстрока существует, позиция выше 0.

Вы можете найти эквивалентные функции в SQL Server.

select *
from table
where CHARINDEX('JAVA', content) > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...