2012-11-29 40 views
1

您好,如果有这个疑问:MySQL查询匹配和或者

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为10,是它有可能更多的查询/搜索/结果的准确性?

最后,一个提示dubt,查询匹配的准确性取决于记录的数量?

感谢谁帮我

+0

ehmm对不起我的英文我的意思是准确性! – sbaaaang

+0

对,对不起。意识到这听起来不那么有趣,更有趣。 –

+0

好吧...我真的不知道如何实现OR,导致WHERE没有OR是好的,但唯一的OR WHERE听起来不好,真的不知道 – sbaaaang

回答

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 ; 

当标题包含'pattern'时,这将为MATCH()返回的分数加1。