【发布时间】:2016-04-26 13:45:03
【问题描述】:
我是 postgreSQL 的新手,遇到一个奇怪的问题:
查询对同一个正则表达式返回不同的结果。这怎么可能?
为什么前三个查询返回 null 而最后一个返回正确的 'true'。
我阅读了postgreSQL documentation,但仍然无法弄清楚这些功能之间的区别在哪里。
请帮忙。
select '12340599' like '^[0-9]*$'
select '12340599' similar to '^[0-9]*$'
select substring('12340599' from '^[0-9]*$' for '#')
select '12340599' ~ '^[0-9]*$'
【问题讨论】:
-
LIKE不支持正则表达式。第一个不包含任何 SQL 通配符,因此它与select '12340599' = '^[0-9]*$'相同。如果我没记错的话,SIMILAR TO不支持完整的 RegEx 功能
标签: regex postgresql