我在redshift中有一个表,其中一列是PHP序列化对象。我想使用redshift字符串函数并反序列化列,并用反序列化的值创建另一个临时表。
例如:
最初的表格看起来像
| 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 |
如何使用redshift字符串函数反序列化此对象?

最佳答案

对于您的特殊情况,它的工作方式如下:

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),'"');

如果这个结构有其他格式的话,这就行不通了

关于php - 使用字符串函数在Amazon Redshift中反序列化php对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46722571/

10-11 03:37