postgresql中的通配符搜索

7 postgresql

在postgresql中,我已经使用SIMILAR TO选项将查询模式(*)添加到查询中.所以我的查询是,

SELECT * FROM table WHERE columnName SIMILAR TO 'R*'
Run Code Online (Sandbox Code Playgroud)

此查询将返回从"R"开始而不是"r"的所有实体.我想让它不区分大小写.

Cra*_*ger 13

用途ILIKE:

SELECT * FROM table WHERE columnName  ILIKE 'R%';
Run Code Online (Sandbox Code Playgroud)

或不区分大小写的正则表达式:

SELECT * FROM table WHERE columnName ~* '^R.*';
Run Code Online (Sandbox Code Playgroud)

两者都是PostgreSQL扩展.Sanjaya已经概述了符合标准的方法 - 使用lower(...)或使用双分支SIMILAR TO表达式过滤双方.

SIMILAR TO不太可爱,最好避免.见前面这个答案.

你可以写:

SELECT * FROM table WHERE columnName SIMILAR TO '(R|r)%'
Run Code Online (Sandbox Code Playgroud)

但我不特别推荐使用SIMILAR TO.