在postgresql中,我已经使用SIMILAR TO选项将通配符模式(*)添加到查询中。所以我的查询将是,
SELECT * FROM table WHERE columnName SIMILAR TO 'R*'
此查询将返回从“R”开始而不是“r”的所有实体。我想让它不区分大小写。
答案 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%'