仅使用MySQL匹配来匹配列的开头

时间:2014-05-16 12:57:52

标签: mysql sql database indexing full-text-search

我在一个巨大的表格上添加了一个全文索引,以加快我的搜索速度,但找不到我的问题的解决方案

我有一句话:

ID|TITLE|SOMETHING ELSE|

我们在这张表中说我有以下几行:

 10|Some text|fdsfsd|
 11|More some text|dfdsfsdffsdfsdf|

我想只匹配以"Some text"开头的行。

然后我在过去使用像

这样的小表

WHERE TITLE like 'Some text%'

但是我如何通过匹配来完全掌握这一点,以获得我的全文索引的优势,因为有这样的查询:

WHERE match(TITLE) against('Some text')我会得到两行。

1 个答案:

答案 0 :(得分:1)

您可以使用FULLTEXT索引进行大规模匹配,然后优化结果,例如:

WHERE match(TITLE) against('Some text')
  AND TITLE like 'Some text%'

这将使FULLTEXT系统缩小匹配选项,然后再应用其他标准。

请确保检查此项的性能,并在完全填充数据库时执行EXPLAIN验证。有时优化器会做出奇怪的选择。