如何使PostgreSQL搜索(WHERE field = 'stackoverflow'
)不区分大小写?
由于效率较低,我不想因为ORM和CITEXT而使用LOWER()
。我发现解决方案是使用另一种排序规则:
CREATE DATABASE polish_database LC_COLLATE 'pl_PL.UTF-8' LC_CTYPE
'pl_PL.UTF-8';
但是如何将不区分大小写的排序规则/语言环境下载到Ubuntu?
答案 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