2013-02-20 101 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) 

我希望這有助於某人。