我有以下查询,它在MySQL Innodb数据库中针对两个不同表中的两列执行全文搜索,使用相同的搜索术语;
SELECT Id,
MATCH (tb1.comment, tb2.comment) AGAINST (+'search term' IN BOOLEAN MODE) AS Relevance
FROM tbl1
LEFT JOIN tb2 ON tb1.Id = tb2.Id
WHERE MATCH (tb1.comment, tb2.comment) AGAINST (+'search term' IN BOOLEAN MODE)
HAVING Relevance > 0
如果我只对tb1.comment执行MATCH操作,那么它可以正常工作并返回相关的搜索词,但是我想对两列执行此操作。
然而,由于其他表是使用LEFT JOIN可选的,如果没有匹配的Ids,它不会返回任何内容。有什么办法可以解决这个问题吗?
HAVING (Relevance1+Relevance2) > 0
,那么您是否可以简单地省略WHERE MATCH ... OR MATCH ...
呢?结果不是一样的吗? - Ivo Renkema(MATCH (tb1.comment) AGAINST (+'search term' IN BOOLEAN MODE) + MATCH (tb2.comment) AGAINST (+'search term' IN BOOLEAN MODE)) AS Relevance
- jim smith