Предположим:
фраза 1: Я человек-паук и у меня есть картошка
фраза 2: Я паук и люблю картошку
Таблица:
column_id | column_str
1 | spiderman
2 | potatoes
Я хочу выполнить SQL-запрос, где входом является фраза, и в результате он должен получить:
Для фразы 1:
column_id | column_str
1 | spiderman
Для фразы 2:
column_id | column_str
2 | potatoes
Таким образом, он должен найти соответствующие подстроки во входных данных в столбце column_str таблицы и вернуть связанный с ним идентификатор.
У меня пока нет ошибок или пробных примеров, потому что я не знаю, с чего начать.
Что я знаю, так это то, что есть сопоставитель %LIKE%. Но это с точностью до наоборот, что-то вроде %IN_LIKE%.






Вы должны подумать о сложном SQL, как показано ниже:
select dsd
from (select 'potato' as dsd) ss
where (select 'I am spiderman and I have a potato') rlike dsd;
Пример:
mysql> select dsd from (select 'potato' as dsd) ss where (select 'I am spiderman and I have a potato') rlike dsd;
+--------+
| dsd |
+--------+
| potato |
+--------+
Все, что вам нужно, это функция INSTR:
--sample data creation
create table tbl(id int, str varchar(50));
insert into tbl values (1, 'spiderman');
insert into tbl values (2, 'potatoes');
select * from tbl
where instr('I am spiderman and I have a potato', str) > 0;
select * from tbl
where instr('I am a spider and I like potatoes', str) > 0;
Для справки см. Функция MySQL INSTR().
Вы используете MySQL, MS SQL Server или Sybase?