使用 PostgreSQL 数据库(排序规则 C,编码 UTF8),我们存储来自各种语言的数据。这意味着我们还可以免费获得特殊字符(例如 Å、å、...)
在应用程序中,我们现在要执行不区分大小写的搜索。这意味着如果用户在搜索框中键入“Å”,则查询还必须考虑“å”。
但是,使用 lower(string) 或 upper(string) 方法在转换时完全忽略此值。因此,没有找到匹配的记录...
有没有办法解决?
使用正则表达式似乎可以使用 \p{L} 来比较值,但我需要在查询级别使用它,所以我猜这是不行的。
附带说明:我们使用 Hibernate 来创建查询。