2016-11-11 58 views
1

匹配我有我的表具有以下值的列:正則表達式在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' 

我想獲取最新的唯一價值和是通用的解決,這將在未來的附加價值。

目前以下是行不通的:

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' 

感謝您的幫助提前!

回答

1

我認爲你可以只使用substring這裏脫身:

SELECT device 
FROM yourTable 
WHERE substring(device for 4) = '2.18' OR 
     substring(device for 4) = '2.19' 

關於如何使用Postgres的substring功能的很好的資源見TechOnTheNet

更新:

如果您計劃在具有在未來2.0釋放,你只是想第一次要版本模式相一致,那麼你可以按如下修改查詢:

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

感謝您的回覆。這會工作。 –