Создание SQL-запроса для сопоставления поля varchar с использованием заданного списка слов - PullRequest
1 голос
/ 07 июня 2011

Я ищу совет при создании запроса SQL.У меня есть база данных MySQL с полем VARCHAR (255) под названием «предложения».Как вы можете догадаться, это поле содержит предложение из нескольких слов.Я хочу запросить базу данных, чтобы получить любую комбинацию из нескольких заданных слов, но без каких-либо других слов.

Вот пример: скажем, я хочу получить каждую комбинацию ' do ', ' you ', ' like ', ' tea '.Поэтому я хотел бы, чтобы в моем результате были предложения: « нравится ли вам чай », « нравится ли вам » или «, как чай » или « делать чай 'но не предложения' любишь ли ты кофе ',' любишь ли ты чай '

Конечно, я мог бы создатьвсе возможные комбинации слов с PHP, например, а затем создать правильный запрос SQL.Но я ищу способ сделать это только с помощью операторов SQL и заданных слов, без какой-либо предварительной обработки.

Большое спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 07 июня 2011

когда вы используете

WHERE (field LIKE '%do%%like%%tea%')

, тогда приведенные вами примеры работают, но вы полагаетесь на данный заказ, поэтому значение "like tea do" не будет охвачено.

Я быдумаю, что решение было бы сформировать запрос как:

WHERE (field LIKE '%do%') AND (field LIKE '%like') AND (field LIKE '%tea%')
0 голосов
/ 07 июня 2011

, если вы хотите автоматически установить поиск для 'вам нравится' и 'вам нравится чай' , но не 'вам нравится кофе' Я думаю, что это невозможно, потому что для поисковика это просто строка символов. он не знает разницы между «чаем» и «кофе», кроме длины (3 против 5) и набора символов

PS для поиска нескольких строк попробуйте использовать fulltext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...