postgresql中的通配符搜索

时间:2013-06-18 04:36:06

标签: postgresql

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

SELECT * FROM table WHERE columnName SIMILAR TO 'R*'

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

2 个答案:

答案 0 :(得分:13)

使用ILIKE

SELECT * FROM table WHERE columnName  ILIKE 'R%';

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

SELECT * FROM table WHERE columnName ~* '^R.*';

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

SIMILAR TO不太可爱,最好避免。请参阅this earlier answer

你可以写:

SELECT * FROM table WHERE columnName SIMILAR TO '(R|r)%'

但我不特别建议使用SIMILAR TO

答案 1 :(得分:1)

SELECT * FROM table WHERE columnName  SIMILAR TO 'R%|r%'