如何使PostgreSQL不区分大小写?

时间:2015-11-10 14:05:54

标签: sql postgresql ubuntu case-insensitive

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

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

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

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

2 个答案:

答案 0 :(得分:2)

不确定是否有这个帮助。

但是你不需要为整个数据库使用整理。

你可以将整理作为你担心的字段。

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

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

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

OR

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

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

WHERE field = Lower('StackoverFlow') 

答案 1 :(得分:2)

我认为可以使用关键字 ILIKE

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