POSTGRES SQL 查询以查找所有具有一列的行包含格式为 11 位数字 - 4 位数字的数字

POSTGRES SQL query to find all the rows which have one column contains number with format like 11 digits - 4 digits

我正在尝试编写一个 postgress sql 查询,这里我想 select 所有行,其中一列必须包含以下格式的字符串,我无法构造常规postgress 的表达式,因为我是这个数据库的新手

一列包含类似 PRF:12345678901-1234 的字符串,因为此列值存在,因此将 sql 查询写入 select 所有具有此格式列值的行,这里 PRF: 是常数,它永远不会改变,唯一改变的值是 : 符号之后的字符串,有人可以帮我吗。

你可以试试

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

这是一个demo

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

~波浪号用于正则表达式评估,您可以评估表达式是否符合您的需要here