1

嗨,如果有这个查询:

 SELECT *,
      MATCH(tags) AGAINST ('book library' IN BOOLEAN MODE) AS resources_score 
      FROM books  HAVING resources_score > 0 
      ORDER BY resources_score DESC, id DESC ; 

是否可以添加一个OR WHERE title LIKE ;

另外,由于我的查询是 returnig resource_score as 1or 0,是否有可能获得更高的查询/搜索/结果准确性?

最后,提示一个问题,查询匹配准确度取决于记录数?

感谢谁会帮助我

4

1 回答 1

1

当所有其他方法都失败时,您可以使用算术组合 SQL 函数。

 SELECT *,
 (title LIKE '%pattern%') + (MATCH(tags) AGAINST ('book library' IN BOOLEAN MODE))
   AS resources_score 
 FROM books HAVING resources_score > 0 
 ORDER BY resources_score DESC, id DESC ;

当标题包含“模式”时,这将为 MATCH() 返回的分数加 1。

于 2012-11-29T20:13:28.380 回答