Значение поля MySQL SELECT, содержащееся в строке запроса

Предположим:

фраза 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%.

Вы используете MySQL, MS SQL Server или Sybase?

jarlh 17.05.2018 14:07
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
275
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны подумать о сложном 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().

Другие вопросы по теме