使用字符串函数反序列化亚马逊红移的php对象

使用字符串函数反序列化亚马逊红移的php对象

问题描述:

我在redshift中有一个表,其中列是PHP序列化对象。我想使用redshift字符串函数并对列进行反序列化,并使用反序列化的值创建另一个临时表。 例如: 初始表看起来像作进一步处理使用字符串函数反序列化亚马逊红移的php对象

| col A | |a:1:{i:145;s:2:"14";} | |a:1:{i:145;s:2:"15";} | |a:1:{i:145;s:2:"16";} |

预期输出临时表:

| Col A | Col B | | 145 | 14 | | 145 | 15 | | 145 | 16 |

如何使用红移字符串函数来反序列化这个对象?

您的特定情况下,它的工作是这样的:

select 
split_part(split_part('a:1:{i:145;s:2:"14";}',':',4),';',1) 
,trim(split_part(split_part('a:1:{i:145;s:2:"14";}',':',6),';',1),'"'); 

如果可以有这样的结构这一点其他格式是行不通的

我想出了解决办法:

SELECT REGEXP_SUBSTR(SPLIT_PART(VALUE,';',1),'[^:]*$') as fieldName1, trim('"' FROM REGEXP_SUBSTR(SPLIT_PART(VALUE,';',2),'[^:]*$')) as fieldName2;