SUN Jiangong
SUN Jiangong

Reputation: 5312

MySQL: how to make multiple table fulltext search

I want to integrate the MySQL fulltext search function in my PHP site.

I have the following problem now.

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

And i have the error code:

#1210 - Incorrect arguments to MATCH

Do you know why and how to solve it?

Thanks very much!

Edit:

I adopt RageZ's method:

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'
); 

And I have a new question. If i want to find the content which are :

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

How to write the query?

Ok, i know against can only have one criteria.

AGAINST('founder');

Upvotes: 3

Views: 3303

Answers (2)

piranye
piranye

Reputation: 9

AGAINST('founder initiator employee');

or you can use boolean mode with more good stuff

Upvotes: 0

RageZ
RageZ

Reputation: 27313

I think since full text search use some specific indexes you should separate table by 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'
); 

Upvotes: 3

Related Questions