postgresql 查询中的正则表达式不区分大小写

case insensitive in regex in postgresql query

我想通过另一个table的记录搜索姓名列表 我希望我的正则表达式不区分大小写,但我做不到!

SELECT id
  FROM "regexfreeFlickrFullInfo"
  where tags ~ 'tower\s?\*?bridge'  or title ~ 'tower\s?\*?bridge' or descriptio ~ 'tower\s?\*?bridge'  order by id asc;

这是我的查询,我已经测试过了,但是没有用!

您必须使用 ~* 而不是 ~

如果您想在不更改查询本身的情况下支持区分大小写和不区分大小写的查询,您可以使用 Regular Expression Metasyntax 更改运算符的行为。 它们可以覆盖正则表达式运算符隐含的区分大小写的行为。

tags ~ 'Case Sensitive'
tags ~ '(?i)case insensitive'
tags ~* 'case insensitive'
tags ~* '(?c)Case Sensitive'