mysql反向索引,mysql部分索引,反向索引

I have a table with a list of words.

word VARCHAR(16)

I need to create a reverse index. ie. word "apple" would index as "elppa", word "banana" as "ananab" and so on.

Also, is it possible to index, say, a part of the word? Such as, skip the first/last 1 or 2 characters:

pple (apple)

anana (banana)

are these things possible?

解决方案

You can create an index on a field that's limited by prefix-length, meaning that only the first n characters will be considered, you can't do it with an arbitrary start and end position though. Read more about it on mysql's CREATE INDEX documentation page.

In this case I'd just make another column, use mysql's REVERSE function to fill it in and create an index on it, that way you get a field to search on for the reverse of the original word.

Other databases such as Postgresql allow you to index an expression, which would effectively allow you to index reverse(col_name) without creating the extra column. So it it's possible, just not with mysql right now. (since version 9 potgresql has reverse() native I believe)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值