PostgreSQL in 子句忽略大小写值

Posted

技术标签:

【中文标题】PostgreSQL in 子句忽略大小写值【英文标题】:PostgreSQL in clause with ignore case values 【发布时间】:2021-06-01 16:51:58 【问题描述】:

我正在使用此链接 - PostgreSQL: How to make "case-insensitive" query 并提出一个问题。

我正在寻找传递值,并且应该得到不区分大小写的响应。

select * from account_role where descr in ('Acquirer','Advisors');

如果我传递 acquireradvisors 之类的值,它应该可以工作。如果我传递诸如“ACQUIRER”和“ADVISORS”之类的值。

我必须在 JPQL 中使用与其他表连接的相同查询。

【问题讨论】:

【参考方案1】:

您可以将值作为ARRAY 传递,并将ANYILIKE 结合使用以使其不区分大小写,例如

WITH j (txt) AS (
  VALUES ('ACQUIRER'),('ADVISORS')
) 
SELECT * FROM j 
WHERE txt ILIKE ANY (ARRAY['AcQuIrEr', 'AdvisorS']);

   txt    
----------
 ACQUIRER
 ADVISORS

看到这个db<>fiddle

【讨论】:

以上是关于PostgreSQL in 子句忽略大小写值的主要内容,如果未能解决你的问题,请参考以下文章

Firestore 数据库查询,忽略大小写(不区分大小写)和 like 子句。 [复制]

SQL相关易忽略点

如果值为空,postgresql 忽略过滤条件

SQL Server 2016 OPENJSON忽略大小写

在执行 Select 查询时,如何忽略 Postgresql 中某列具有特定值的数据行?

IN() 子句中的 PostgreSQL ORDER BY 值