【问题标题】:How to make PostgreSQL case insensitive?如何使 PostgreSQL 不区分大小写?
【发布时间】:2015-11-10 14:05:54
【问题描述】:

如何使 PostgreSQL 搜索 (WHERE field = 'stackoverflow') 不区分大小写?

由于ORM和CITEXT效率较低,我不想使用LOWER()。我发现解决方案是使用另一个排序规则:

CREATE DATABASE polish_database  LC_COLLATE 'pl_PL.UTF-8' LC_CTYPE
'pl_PL.UTF-8';

但是如何将不区分大小写的排序规则/语言环境下载到 Ubuntu?

【问题讨论】:

标签: sql postgresql ubuntu case-insensitive


【解决方案1】:

不确定这是否有帮助。

但您不需要对整个数据库使用排序规则。

您可以将排序规则分配给您担心的字段。

CREATE TABLE test1c (
    id integer,
    content varchar COLLATE "x"
);

您还可以创建索引以支持整理或计算值

CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");

CREATE INDEX test1c_content_y_index ON test1c (LOWER(content));

然后你可以做lower()并使用索引。

WHERE field = Lower('StackoverFlow') 

【讨论】:

    【解决方案2】:

    我觉得可以用关键字ILIKE

    select 'test' ILIKE 'TEST'; // return true
    

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2013-03-06
      • 2013-04-25
      相关资源
      最近更新 更多