相关疑难解决方法(0)

向PostgreSQL添加不区分大小写的排序规则

默认情况下,PostgreSQL没有不区分大小写的排序规则.其文档描述了一种基于操作系统语言环境添加新排序规则的方法,例如:

http://www.postgresql.org/docs/9.1/static/sql-createcollat​​ion.html

但是创建的排序规则区分大小写.

我的问题是:如何将一个案例INsensitive排序添加到PostgreSQL服务器?

有人可以描述一个工作流程吗?

我无法在网上找到任何引用,而有些人提到它是可能的.我已经在Windows上测试了v9.1 - Debian GNU/Linux和v9.2.

只是为了澄清我知道:

  • PostgreSQL CITEXT附加数据类型
  • 用法/下限为搜索和索引.

这些不是我想要的解决方案.

database postgresql collation

11
推荐指数
1
解决办法
3727
查看次数

SQL炼金术不敏感的排序顺序

嗨我试图使用sql炼金术在sqlite数据库中为特定列实现升序排序,我遇到的问题是我要排序的列有大小写数据,因此排序顺序无法正常工作.

然后我发现了关于func.lower并尝试将其合并到查询中,但它或者错误或者只是不起作用,有人能给我一个如何使用sql炼金术做一个不区分大小写的升序排序的工作示例.

以下是我到目前为止(抛出错误): -

session.query(ResultsDBHistory).order_by(func.lower(asc(history_sort_order_column))).all()
Run Code Online (Sandbox Code Playgroud)

python 2.6.6 sql alchemy 0.7.10

python sqlite sqlalchemy

8
推荐指数
1
解决办法
3146
查看次数

将 postgres 更改为不区分大小写

如何将 Postgresql 数据库更新为不区分大小写?

我已经有一些表和一些数据,目前它们区分大小写,但我想将它们全部更新为不区分大小写。

postgresql

8
推荐指数
1
解决办法
7554
查看次数

任何人都成功使用PostgreSQL数据库的特定区域设置,以便文本比较不区分大小写?

我正在使用PostgreSQL 8.4在OS X上的Rails中开发一个应用程序.我需要为应用程序设置数据库,以便标准文本查询不区分大小写.例如:

SELECT*FROM documents WHERE title ='令人难以置信的文件'

应该返回相同的结果:

SELECT*FROM documents WHERE title ='Incredible Document'

为了清楚起见,我不想使用:

(1)LIKE在where子句或任何其他类型的特殊比较运算符中

(2)列数据类型或任何其他特殊列索引的citext

(3)任何类型的全文软件,如Sphinx

我想要的是设置数据库区域设置以支持不区分大小写的文本比较.我在Mac OS X(10.5 Leopard)上并且已经尝试将编码设置为"LATIN1",Collat​​ion和Ctype都设置为"en_US.ISO8859-1".到目前为止没有成功.

非常感谢任何帮助或建议.

谢谢!

更新

我已经标出了一个答案,作为正确答案,尊重那些回答的人.但是,我选择以不同于建议的方式解决这个问题.在进一步审查应用程序之后,只有少数几个实例需要对数据库字段进行不区分大小写的比较,因此我将为需要进行不区分大小写的比较创建影子数据库字段.例如,name和name_lower.我相信我在某个地方遇到了这个解决方案.希望PostgreSQL允许类似的SQL Server在未来提供的排序选项(即DOCI).

特别感谢所有回复的人.

postgresql macos locale case-sensitive case-insensitive

5
推荐指数
1
解决办法
1249
查看次数

Postgres 不区分大小写

我目前正在做一个已经开发了几个月的 Java 项目。项目差不多完成了,现在我意识到 Postgres 是区分大小写的。

在我的登录过程中,它无法区分username和“用户名”。我使用 Java base、Hibernate 和 JPA 作为后端实现,并使用 Postgres 作为数据库。

我一直在互联网上搜索解决方案,我得到的大部分答案都是建议我使用解决方案:

select loginId from user where 
lower(loginId)=loginid.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

或将表列的数据类型更改为 citext。

但是有没有更快的方法来做到这一点?或者是否有任何变量Postgres.conf能够控制不区分大小写?或者在休眠状态下我可以轻松控制它?

我知道使用方法lower(loginId)=loginId.toLowerCase()是解决问题的最简单方法,但是我的项目中有很多代码需要更改,可能需要很长时间才能修复。将数据类型更改为 citext 对于很久以前实施的项目来说并不是一个很好的解决方案。

这里有人有更好的解决方案来解决我当前的问题吗?

java postgresql hibernate jpa case-insensitive

0
推荐指数
1
解决办法
3060
查看次数