Может ли выражение совпадения с полным текстом работать внутри условия соединения - PullRequest
2 голосов
/ 22 ноября 2010

Это связано с другим вопросом, заданным здесь: Как: сопоставить (пространство поиска) с (объединить с колонкой из другой таблицы)

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

Похоже, вам нужно использовать FULLTEXT соответствующее выражение в вашем соединении состояние.

Я никогда не использовал полнотекстовое совпадение в присоединиться к условию, поэтому я не уверен в этом будет работать, но гипотетически это может сделать это:

SELECT DISTINCT c.*
FROM corpuses c JOIN searches s 
  ON (MATCH(c.title, c.body) AGAINST (s.term));

1 Ответ

0 голосов
/ 12 января 2012

Я просто из любопытства попробовал подобный запрос, и он не удался по очень понятной причине:

AGAINST принимает строку для поиска и необязательный модификатор, который указывает, какой тип поиска выполнять. Строка поиска должна быть литеральной строкой, , а не переменной или именем столбца . - MySQL Руководство по полнотекстовым поискам (мой акцент)

Ознакомьтесь с обновленным ответом Билла Карвина в вопросе, на который вы ссылались, чтобы предложить запрос с использованием подвыбора, который выберет каждую строку из таблицы A, которая соответствует ЛЮБОМУ значению в столбце «term» из таблицы B.

...