我需要返回在特定列中具有多个.
的字段。
现在我有这个查询:
select *
from table
where column ~ '\.{2,}?';
但是由于某种原因,它什么也不返回。如果我使用类似'A{2,}?'
的名称,则可以使用。显然是问题所在。
答案 0 :(得分:1)
由于点之间不相邻,因此返回null。您必须按照正则表达式元字符的顺序考虑字符的出现。您可以尝试以下方法:
select *
from table
where column ~ '\.\d{3}\.';
或者不仅仅着眼于点字符,而是开始将字符串作为一个整体进行分析并考虑数字:
where column ~ '^\d{3}\.\d{3}\.';
答案 1 :(得分:0)
为什么不只使用like
?
where column like '%.%.%'