有没有办法在PostgreSQL中编写不区分大小写的查询,例如,我想下面3个查询返回相同的结果。
SELECT id FROM groups where name='administrator'
SELECT id FROM groups where name='ADMINISTRATOR'
SELECT id FROM groups where name='Administrator'
有没有办法在PostgreSQL中编写不区分大小写的查询,例如,我想下面3个查询返回相同的结果。
SELECT id FROM groups where name='administrator'
SELECT id FROM groups where name='ADMINISTRATOR'
SELECT id FROM groups where name='Administrator'
当前回答
我喜欢在这种情况下工作:
SELECT id
FROM groups
WHERE name ILIKE 'Administrator'
其他回答
使用~*可以通过INSTR的功能极大地提高性能。
SELECT id FROM groups WHERE name ~* 'adm'
返回name包含OR = 'adm'的行。
您还可以使用POSIX正则表达式,例如
SELECT id FROM groups where name ~* 'administrator'
SELECT 'asd' ~* 'asd'返回t
用ILIKE代替LIKE
SELECT id FROM groups WHERE name ILIKE 'Administrator'
我喜欢在这种情况下工作:
SELECT id
FROM groups
WHERE name ILIKE 'Administrator'
对于不区分大小写的参数化查询,您可以使用以下语法:
"select * from article where upper(content) LIKE upper('%' || $1 || '%')"