【发布时间】:2011-10-08 18:00:54
【问题描述】:
我有一个包含 ID 和字符串的表,我需要能够正确索引以搜索字符串的结尾。我们目前处理它的方式是将信息复制到另一个表中并反转每个字符串并正常索引它。我想做的是使用某种允许反向搜索的索引。
例子
Data:
F7421kFSD1234
d7421kFSD1235
F7541kFSD1236
d7421kFSD1234
F7421kFSD1235
b8765kFSD1235
d7421kFSD1234
我们的用户通常输入搜索的方式类似于...
*1234
通过反转字符串(以及搜索字符串:4321*),我可以在不完全扫描整个表的情况下找到我要查找的内容。我的问题是:制作第二张桌子是最好的方法吗?
有没有办法反转索引? 我试过这样的索引...
create index REVERSE_STR_IDX on TABLE(STRING) REVERSE;
但是 oracle 似乎没有按照解释计划使用它。
提前感谢您的帮助。
更新:
我确实遇到了未正确反转 unicode 字符的问题。解决这个问题的方法是铸造它们。
例子:
select REVERSE(cast(string AS varchar2(2000)))
from tbl
where id = 1
【问题讨论】:
标签: oracle indexing oracle10g reverse