像stackoverflow的SQL搜索查询

Emm*_*mma 2 php mysql search

就像用户在输入字段中写文章标题一样,我想搜索现有文章以查看是否有相似文章.

例如.

SQL search query like stackoverflow
Run Code Online (Sandbox Code Playgroud)

我想找到与此标题相关的最相关的文章.

我知道它是这样的:

WHERE article_title LIKE 'word'

但是如何处理多个关键字?

Mar*_*c B 5

使用全文索引,类似于:

SELECT ... FROM ... WHERE MATCH (fieldname) AGAINST ('keyword keyword keyword');
Run Code Online (Sandbox Code Playgroud)

或者破解查询看起来像

SELECT ... FROM ... WHERE (fieldname LIKE '%keyword%' OR fieldname LIKE '%keyword%' etc...)
Run Code Online (Sandbox Code Playgroud)

在这两者中,全文版本会更快,因为它可以使用索引.' LIKE %...%版本将非常昂贵,因为该类的通配符搜索根本不能使用索引.缺点是全文索引仅在MyISAM表上可用,并且可能永远不可用于InnoDB表.