有没有办法在PostgreSQL中编写不区分大小写的查询,例如,我想下面3个查询返回相同的结果。

SELECT id FROM groups where name='administrator'

SELECT id FROM groups where name='ADMINISTRATOR'

SELECT id FROM groups where name='Administrator'

当前回答

对于不区分大小写的参数化查询,您可以使用以下语法:

 "select * from article where upper(content) LIKE upper('%' || $1 || '%')"

其他回答

使用~*可以通过INSTR的功能极大地提高性能。

SELECT id FROM groups WHERE name ~* 'adm'

返回name包含OR = 'adm'的行。

你可以用ILIKE。即。

SELECT id FROM groups where name ILIKE 'administrator'

限制使用ILIKE

select id from groups where name ILIKE 'adminstration';

如果你来,expressjs的背景和名称是一个变量 使用

select id from groups where name ILIKE $1;
-- Install 'Case Ignore Test Extension'
create extension citext;

-- Make a request
select 'Thomas'::citext in ('thomas', 'tiago');

select name from users where name::citext in ('thomas', 'tiago');
select id from groups where name in ('administrator', 'ADMINISTRATOR', 'Administrator')