我正在尝试使用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
,并且表和行的所有排序规则都相同。
有人可以解释这个问题吗?
答案 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)
我希望这有助于某人。