gpt4 book ai didi

oracle - 在 Oracle 中使用索引反转字符串

转载 作者:行者123 更新时间:2023-12-05 09:00:05 25 4
gpt4 key购买 nike

我有一个包含 ID 和字符串的表,我需要能够正确地建立索引以搜索字符串的末尾。我们目前的处理方式是将信息复制到另一个表中,然后反转每个字符串并正常对其进行索引。我想做的是使用某种允许反向搜索的索引。

例子

Data: 
F7421kFSD1234
d7421kFSD1235
F7541kFSD1236
d7421kFSD1234
F7421kFSD1235
b8765kFSD1235
d7421kFSD1234

我们的用户通常输入搜索的方式类似于...

*1234

通过反转字符串(和搜索字符串:4321*),我无需完全扫描整个表即可找到我要查找的内容。我的问题是:做第二张 table 是最好的方法吗?

有没有办法反向索引?我试过这样的索引......

create index REVERSE_STR_IDX on TABLE(STRING) REVERSE;

但 oracle 似乎没有按照解释计划使用它。

在此先感谢您的帮助。


更新:

我确实遇到了没有正确反转 unicode 字符的问题。解决这个问题的方法是类型转换它们。

例子:

select REVERSE(cast(string AS varchar2(2000)))
from tbl
where id = 1

最佳答案

有一种说法是反向键索引可以用于此目的,但是,我从未见过实际应用。

我会尝试基于“手动”函数的索引。

CREATE INDEX REVERSE_STR_IDX on TBL(reverse(string));

SELECT *
FROM TBL
WHERE reverse(string) LIKE '4321%';

关于oracle - 在 Oracle 中使用索引反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com