2011-04-28 248 views
0

我有两个表,我加入(为了获得用户名,我加入他们都在user_id)。如何在MySQL的INNER JOIN中进行全文搜索?

这里是我的帐户表结构:

+-----------+------------------+------+-----+-------------------+----------------+ 
| Field  | Type    | Null | Key | Default   | Extra   | 
+-----------+------------------+------+-----+-------------------+----------------+ 
| user_id | int(10) unsigned | NO | PRI | NULL    | auto_increment | 
| username | varchar(20)  | NO |  | NULL    |    | 
| email  | varchar(128)  | YES |  | NULL    |    | 
| timestamp | timestamp  | YES |  | CURRENT_TIMESTAMP |    | 
| hashed_pw | varchar(255)  | YES |  | NULL    |    | 
| active | char(32)   | YES |  | NULL    |    | 
+-----------+------------------+------+-----+-------------------+----------------+ 

这里是我的提交表结构

+-------------+------------------+------+-----+-------------------+----------------+ 
| Field  | Type    | Null | Key | Default   | Extra   | 
+-------------+------------------+------+-----+-------------------+----------------+ 
| id   | int(10) unsigned | NO | PRI | NULL    | auto_increment | 
| title  | varchar(255)  | NO | MUL | NULL    |    | 
| description | varchar(255)  | YES |  | NULL    |    | 
| source  | varchar(255)  | NO |  | NULL    |    | 
| category | varchar(64)  | NO |  | NULL    |    | 
| user_id  | int(10) unsigned | NO | MUL | NULL    |    | 
| submit_ip | int(4) unsigned | NO |  | NULL    |    | 
| timestamp | timestamp  | NO | MUL | CURRENT_TIMESTAMP |    | 
| thumbnail | varchar(255)  | YES |  | NULL    |    | 
+-------------+------------------+------+-----+-------------------+----------------+ 

现在,我使用下面的查询来获取我需要什么,它工作正常:

SELECT Submissions.title, Submissions.description, Submissions.timestamp, 
Accounts.user_id 

FROM `Submissions` 

INNER JOIN `Accounts` ON 

Submissions.user_id=Accounts.user_id; 

这给了我下面的结果:

*************************** 1. row *************************** 
    title: IJL that one of the men who discovered the stratosphere had a very unfortunate 
name. 
description: 
    timestamp: 2011-04-27 01:43:54 
    user_id: 8 
*************************** 2. row *************************** 
     title: IJL that nuclear reactors actually glow blue. 
description: Testing the description out on this one 
    timestamp: 2011-04-27 02:05:12 
    user_id: 8 

我想执行的效果上都Submissions.title和Submissions.description设置像一个全文检索:

WHERE MATCH (Submissions.title, Submissions.description) AGAINST (?) 

怎么可能我将这添加到我当前的查询来获得所需的结果?

+0

你试过在WHERE子句中把? – Pentium10 2011-04-28 07:01:01

回答

0

先做这个

ALTER TABLE Submissions ADD FULLTEXT(title, description); 

这将增加全文搜索这个两列

这个做

WHERE MATCH (title, description) AGAINST (’keyword’); 
+0

谢谢。愚蠢的错误,我忘记了反对条款的引用。谢谢。 – 2011-04-28 07:48:17