MySQL: как сделать полнотекстовый поиск по нескольким таблицам - PullRequest
2 голосов
/ 04 марта 2010

Я хочу интегрировать функцию полнотекстового поиска MySQL на моем сайте PHP.

У меня сейчас следующая проблема.

SELECT *
FROM testtable t1, testtable2 t2
WHERE MATCH (
t1.firstName, t1.lastName, t1.details, t2.firstName, t2.lastName, t2.details
)
AGAINST (
'founder'
);

И у меня есть код ошибки:

#1210 - Incorrect arguments to MATCH

Знаете ли вы, почему и как это решить?

Большое спасибо!

Edit:

Я принимаю метод RageZ:

SELECT *
FROM testtable t1, testtable2 t2
WHERE MATCH (
t1.firstName, t1.lastName, t1.details
)
AGAINST (
'founder'
) OR MATCH( t2.firstName, t2.lastName, t2.details) AGAINST (
'founder'
); 

И у меня есть новый вопрос. Если я хочу найти содержание, которое:

AGAINST('founder', 'initiator', 'employee');

Как написать запрос?

Хорошо, я знаю, что против может быть только один критерий.

AGAINST('founder');

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

Я думаю, что поскольку в полнотекстовом поиске используются определенные индексы, таблицу следует разделить на OR

SELECT *
FROM testtable t1, testtable2 t2
WHERE MATCH (
t1.firstName, t1.lastName, t1.details
)
AGAINST (
'founder'
) OR MATCH( t2.firstName, t2.lastName, t2.details) AGAINST (
'founder'
); 
0 голосов
/ 28 октября 2010
AGAINST('founder initiator employee');

или вы можете использовать логический режим с более хорошими вещами

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