postgresql - Mac地址正则表达式

时间:2018-04-20 15:57:28

标签: greenplum

我正在尝试使用Greenplum中的以下查询检索具有正确mac地址的所有行但是我也得到了一些垃圾数据的行,如:??:??:??:??:??:??。当我将列传递给另一个函数我收到错误

  

错误:"?"不是有效的十六进制数字

这是我的选择查询

select * from table where mac_address like '%:%:%:%:%:%' 
                    and (length(mac_address)) = 17 
                    and mac_address like '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$'

如何从Greenplum中的列中过滤掉错误的mac_addresses?

1 个答案:

答案 0 :(得分:0)

我自己找到了,mac_address ~ '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$'

select * from table where mac_address like '%:%:%:%:%:%' 
                    AND (length(mac_address)) = 17 
                    AND mac_address ~ '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$'
limit 100;