Apache Derby - 大小写(不)敏感

3

我在谷歌上搜索了一下Apache Derby中的不区分大小写搜索。所有的结果都非常旧(最新的是2007年)。我发现如果使用“LOWER”,就无法保留索引而实现不区分大小写搜索。

这个问题仍然存在吗?或者有没有办法在索引的varchar/text列上进行不区分大小写的搜索?

提前感谢。

1个回答

3
请查看排序规则
在创建连接器时,您可以使用“TERRITORY_BASED:SECONDARY”,这是我能够实现此目的的唯一方法:

TERRITORY_BASED:SECONDARY:基于领Territory的排序规则,具有排序强度SECONDARY
SECONDARY通常意味着基本字母或重音的差异被认为是显著的,而大小写的差异不被认为是显著的。

示例:
jdbc:derby:MexicanDB;create=true;collation=TERRITORY_BASED:SECONDARY

很明显在Derby中无法创建一个基于函数的索引:

https://issues.apache.org/jira/browse/DERBY-455

另一种可能性是将相同的值存储在小写列中并在其中进行搜索。


1
谢谢,我也找到了这个:https://dev59.com/HFfUa4cB1Zd3GeqPIHAF - dermoritz
很好,有一个答案提到:http://blogs.oracle.com/kah/entry/derby_10_5_preview_generated 使用生成列,这对我的最后一个建议非常有用。 - oers
但你的建议更少侵入性 - 目前对我来说是更好的选择。 - dermoritz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接