mysql部分索引,反向索引

时间:2012-06-08 23:13:58

标签: mysql database indexing

我有一张包含单词列表的表格。

word VARCHAR(16)

我需要创建一个反向索引。即。单词“apple”将索引为“elppa”,单词“banana”作为“ananab”等等。

此外,是否可以索引一部分单词?例如,跳过第一个/最后一个或两个字符:

pple(苹果) anana(香蕉)

这些事情可能吗?

1 个答案:

答案 0 :(得分:6)

您可以在字段上创建一个受前缀长度限制的索引,这意味着只会考虑前n个字符,但不能使用任意的开始和结束位置。在mysql的CREATE INDEX文档页面上阅读更多相关信息。

在这种情况下,我只需要创建另一个列,使用mysql的REVERSE函数填充它并在其上创建索引,这样就可以获得一个字段来搜索原始单词的反向。

Postgresql等其他数据库允许您index an expression,这有效地允许您在不创建额外列的情况下索引reverse(col_name)。所以它是可能的,只是现在没有使用mysql。 (因为版本9 potgresql有反向()本机我相信)