2013-02-20 134 views
1

我试图使用MATCH AGAINST IN BOOLEAN MODE,但它返回的行中没有任何MATCH() d列中的“Nathan”。这里是我当前的查询格式:MySQL MATCH AGAINST返回不匹配的行

SELECT `some_rows` 
LEFT JOIN `t1` ON `stuff` 
LEFT JOIN `t2` ON `stuff` 
LEFT JOIN `t3` ON `stuff` 
WHERE MATCH(`some_rows`) AGAINST("Nathan" IN BOOLEAN MODE) 

所有这三个表使用MyISAMDYNAMIC行格式,所有的表和行的排序规则是相同的。

有人可以解释一下这个问题吗?

回答

0

我确实找到了我的问题here的答案。我的问题(可能)是我试图从多个表格中显示你不被允许的列中的MATCH()列。我纠正我的查询是这样的:

SELECT `some_rows` 
LEFT JOIN `t1` ON `stuff` 
LEFT JOIN `t2` ON `stuff` 
LEFT JOIN `t3` ON `stuff` 
WHERE 
MATCH(`t1`.`some_rows`) AGAINST("Nathan" IN BOOLEAN MODE) 
OR MATCH(`t2`.`some_rows`) AGAINST("Nathan" IN BOOLEAN MODE) 
OR MATCH(`t3`.`some_rows`) AGAINST("Nathan" IN BOOLEAN MODE) 

我希望这有助于某人。