就像用户在输入字段中写文章标题一样,我想搜索现有文章以查看是否有相似文章.
例如.
SQL search query like stackoverflow
Run Code Online (Sandbox Code Playgroud)
我想找到与此标题相关的最相关的文章.
我知道它是这样的:
WHERE article_title LIKE 'word'
但是如何处理多个关键字?
使用全文索引,类似于:
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表.
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |