2017-09-06 83 views
0

我想写一个postgress sql查询,在这里我想选择所有行,其中一列必须包含以下格式的字符串,我无法构造Postgress的正则表达式,因为这个数据库是新的POSTGRES SQL查询找到所有有一列的行包含数字格式如11位数字 - 4位数

一列包含像PRF这样的字符串:12345678901-1234像这样的列值存在,所以将一个sql查询写入选择所有具有这种格式的列值的行,这里PRF:是常量,它永远不会改变唯一的变化值是字符串后面:符号,有人可以帮我在这里。

回答

1

SELECT * FROM your_table WHERE your_column ~ '^[A-Z]{3}:\d{11}-\d{4}$';

~波浪号用于正则表达式的评估,你可以评估该表达式匹配您的需求here

+0

@eorge Daramouskas,感谢它的解决方案。我还有一个疑问,如果该列包含纯json,而不是文本行,那么该怎么办?因为我在另一个存储json的列上试了这个,请有任何想法 – Bravo

1

你可以尝试

SELECT * FROM <table> WHERE <column> ~ 'PRF:\d{11}-\d{4}' 

这里是一个demo

相关问题