我有一张包含单词列表的表格。
字 VARCHAR(16)
我需要创建一个反向索引。 IE。单词“apple”将索引为“elppa”,单词“banana”将索引为“ananab”,依此类推。
另外,是否可以索引单词的一部分?例如,跳过第一个/最后一个或 2 个字符:
苹果(苹果)
香蕉(香蕉)
这些事情可能吗?
您可以在受前缀长度限制的字段上创建索引,这意味着仅考虑前 n 个字符,但您不能使用任意开始和结束位置来执行此操作。在 mysql 上阅读更多相关内容创建索引 http://dev.mysql.com/doc/refman/5.0/en/create-index.html文档页面。
在这种情况下,我只需创建另一列,使用 mysql 的REVERSE http://dev.mysql.com/doc/refman/5.5/en/string-functions.html函数来填充它并在其上创建索引,这样你就可以得到一个字段来搜索原始单词的反向内容。
其他数据库(例如 Postgresql)允许您索引表达式 http://www.postgresql.org/docs/8.2/static/sql-createindex.html,这将有效地允许您索引reverse(col_name)
无需创建额外的列。所以这是可能的,只是现在用mysql不行。 (自版本 9 potgresql 以来,我相信有本机的reverse())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)