gpt4 book ai didi

sql - 使用 lower() 索引的 Postgres 搜索

转载 作者:行者123 更新时间:2023-11-29 12:35:18 26 4
gpt4 key购买 nike

我有一个 Postgres 表,其中包含带有大写和小写字符字符串的列。

Table: company
id| name | department
------------------------
1 | LM Corp | Repair
2 | BMG Inc | Maintenance
3 | DFR LLC | shipping

我使用 pgAdmin 在列上创建了一个索引,如下所示:

CREATE INDEX companydepartment_index
ON public.company (lower(department) ASC NULLS LAST);

当我查询输入字符串是小写的 'repair' 时,我没有得到匹配项。

select company.id from company where company.department = lower($1));

为什么 Postgres 不使用小写索引来匹配小写字符串?

我不想使用:...where lower(company.department) = lower($1)),因为它违背了使用小写索引的目的。

最佳答案

I don't want to use: ...where lower(company.department) = lower($1)), because it defeats the purpose of having a lowercase index.

相反,只有在查询中使用与索引中完全相同的表达式时,才会使用索引。参见 Indexes on Expressions在文档中。

关于sql - 使用 lower() 索引的 Postgres 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49865480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com