MySQL MATCH AGAINST返回不匹配的行

时间:2013-02-20 18:03:20

标签: mysql

我正在尝试使用MATCH AGAINST IN BOOLEAN MODE,但它会返回在任何MATCH()'d列中没有出现任何“Nathan”的行。这是我当前的查询格式:

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)

所有三个表都使用MyISAM行格式为DYNAMIC,并且表和行的所有排序规则都相同。

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

1 个答案:

答案 0 :(得分: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)

我希望这有助于某人。