PostgreSql中的正则表达式匹配

PostgreSql中的正则表达式匹配,sql,postgresql,Sql,Postgresql,我的表中有一列具有以下值: '2.190.44.6' '2.185.36.5' '2.180.85.8' '2.180.53.5' '2.170.49.5' '2.160.55.8' '2.145.37.5' '2.190.44.6' '2.185.36.5' '2.180.85.8' '2.180.53.5' 我只想获取最新的值,并对将来添加的值进行通用处理 目前,以下措施不起作用: select device from table where device NOT LIKE '2.1[0

我的表中有一列具有以下值:

'2.190.44.6'
'2.185.36.5'
'2.180.85.8'
'2.180.53.5'
'2.170.49.5'
'2.160.55.8'
'2.145.37.5'
'2.190.44.6'
'2.185.36.5'
'2.180.85.8'
'2.180.53.5'
我只想获取最新的值,并对将来添加的值进行通用处理

目前,以下措施不起作用:

select device from table
where device NOT LIKE '2.1[0-7]%.[0-7]%'
结果应仅为以下值:

'2.190.44.6'
'2.185.36.5'
'2.180.85.8'
'2.180.53.5'
'2.170.49.5'
'2.160.55.8'
'2.145.37.5'
'2.190.44.6'
'2.185.36.5'
'2.180.85.8'
'2.180.53.5'

提前谢谢你的帮助

我认为您只需在此处使用
子字符串即可:

SELECT device
FROM yourTable
WHERE substring(device for 4) = '2.18' OR
      substring(device for 4) = '2.19'
有关如何使用Postgres的子字符串
函数的详细信息,请参阅

更新:

如果您计划在将来发布
2.0
版本,并且您只想匹配第一个次要版本模式,那么您可以按如下方式修改查询:

SELECT device
FROM yourTable
WHERE substring(device from 3 for 2) = '18' OR
      substring(device from 3 for 2) = '19'