如何在用于使用正则表达式搜索的表上使用索引或类似'%example%'

时间:2010-05-11 10:02:40

标签: mysql

我想在表上使用索引,我使用正则表达式搜索字符串'^ searchkeywordname $ | searchkeywordname',这是扫描整个表格。我可以使用索引或总结来检索快速结果

2 个答案:

答案 0 :(得分:1)

当然,您可以在查询中使用正则表达式,但我怀疑索引是否会有所帮助。索引帮助查询:

... WHERE Keywords LIKE 'keyword'
... WHERE Keywords LIKE 'keyword%'
... WHERE Keywords IN ( 'a keyword', 'another keyword' )

或者,您可以在列/列上create a FULLTEXT INDEX使用query the database以不寻常但有用的方式:

... WHERE MATCH ( Keywords ) AGAINST ( 'library in france' )
... // AFAIK it'll also match derivatives such as 'libraries', 'french'

答案 1 :(得分:0)

你不能使用sumthing - MySQL不支持。

您也不能对未在开头锚定的查找使用常规索引,因为任何索引查找都以第一个字符开头。

最佳解决方案是构建一个单词索引表(注意:与数据库索引无关)并在其中搜索单个关键字。作为替代方案,在MySQL中查找全文索引:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html