Like vs Similar to vs rLike

Campo21

我試圖了解postgres 中的likerlikesimilar之間的區別以及每個運算符是否有特定的用例。

熟悉 TSQL 我一般使用like操作符來做類似的事情

Select * From Table where ColA like '%[0-9]%[a-z]%'

但是在 postgres 中,相同的語句不會產生相同的結果。

我的問題是:

  1. postgres 中的哪些運算符(、rlike、類似於、...)最接近地模仿tsql 中like運算符的功能/可用性
  2. 在決定在 postgress 中使用哪個運算符時,是否有一般的經驗法則?

謝謝!

a_horse_with_no_name

LIKE 不支持 SQL 中的正則表達式(而且 SQL Server 的實現並不是真正的正則表達式)。

similar to運算符可能最接近 SQL Server 的 LIKE,因為它支持%來自“常規” LIKE 運算符通配符,但也允許使用正則表達式,

所以

where cola similar to '%[0-9]%[a-z]%'

應該返回與 SQL Server 中相同的值,但它區分大小寫,而 SQL Server 不是默認值。

如果你想要一個真正的正則表達式,那麼你需要使用~運算符

Select * 
From Table 
where ColA ~ '[0-9].*[a-z]'

在“真正的”正則表達式中, the%不是通配符,因此您需要使用.*which 匹配零個或多個字符。~自動進行部分匹配,因此無需“翻譯”%表達式中的前導和尾隨

如果要使用不區分大小寫的匹配,請~*改用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章