SQL-запрос, но обратный, ГДЕ

#php #mysql #sql-like

Вопрос:

У меня есть SQL-запрос, который отлично работает с использованием подстановочных знаков:

 select * from answer_table where pattern like '%$pattern%'  

Когда я вхожу Hello , я получаю все ответы из таблицы ответов, имеющей этот шаблон.

То, что я хочу сделать, — это наоборот. Пользовательский ввод представляет собой длинную строку, например Hello, are you there? . Мой запрос должен проверить все поле шаблона таблицы ответов, если один или несколько шаблонов найдены во входной строке.

Примеры данных в таблице ответов:

ответ шаблон
Привет! привет
Что говорит лиса? звенеть
Мне хочется спать zz

Для Hello, are you there? запроса следует вернуть Hello there!

Заранее спасибо.

Комментарии:

1. SELECT answer FROM Answer_Table WHERE LOCATE(Answer_Table.pattern, @entered_value)

Ответ №1:

Просто поменяйтесь местами, чтобы вы сопоставили ввод пользователя со столбцом, а не со столбцом с вводом пользователя:

 SELECT * FROM Answer_Table WHERE 'Hello, are you there?' LIKE CONCAT('%', pattern, '%')  

Комментарии:

1. Хммм.. Я никогда не думал, что это возможно.. Большое спасибо!

2. Не могли бы вы, пожалуйста, принять ответ, если бы он сработал?

3. Только сегодня попробовал. Да, это сработало идеально. Большое спасибо!