我正在开发一个项目,我有一个数据库,其中包含一个摘要字段,该字段由网站访问者输入的网络表单填写。
当用户完成输入摘要字段时,我想使用页面上用户输入的单词对数据库中的类似记录执行查找,这些记录包含他们填写的相同关键字页。
我以为我可以拆分提交的摘要字符串,然后循环遍历数组并构建查询,以便查询最终结果如下:
{{1}}
然而,这看起来效率非常低,并且由于数据库可能会变得非常大,因此可能会成为一个非常慢的查询运行。
然后我找到了MySQL {{1}}子句,但这似乎只适用于多个值,其中一个字段只能连续包含其中一个值。
有没有办法可以使用IN函数,还是有更好的MySQL函数可以用来做我想要的,或者我的第一个想法是围绕它的唯一方法?
我想要实现的一个例子有点像Stack Overflow。当您失去标题字段的焦点时,它会根据您提供的标题弹出类似的问题。
答案 0 :(得分:1)
我建议您阅读本手册页InnoDB FULLTEXT Indexes和Full-Text Restrictions上的手册页。全新的mysql功能已经包含在最近的mysql版本中,增加了对MyISAM
表的使用。
关于无能力升级mysql版本,没有理由不能在同一个数据库中混合使用INNODB
和MyISAM
表。因此,人们会将文本信息保存在INNODB
(历史上FTS索引功能可用),并在需要时连接到{{1}}表。这避免了必须升级到版本5.6和#34;参数。
图例:FTS =全文搜索