PG里面的数组类型的使用(因为MysqL之前是没有数组类型的)
1.创建测试表:
create table test_array( id serial primary key,info text[][] );
插入数据测试:
insert into test_array(info) values ('[["姓名","出资方式"],["任守智","个人财产出资"]]');
DETAIL: “[” must introduce explicitly-specified array dimensions.
报错说:”[“必须指定明确地数组维度。
使用其他方式插入数据:
insert into test_array(info) values ('{{"姓名","出资方式"},{"任守智","个人财产出资"}}');
insert into test_array(info) values (ARRAY[['姓名','出资方式'],['任守智','个人财产出资']]);--Array构造器语法
可以插入成功。
- 查看数据,发现数据数据是这样存储的:
verticledata=> select * from test_array;
id | info
----+-----------------------------------------
1 | {{姓名,出资方式},{任守智,个人财产出资}}
2 | {{姓名,个人财产出资}}
(2 行记录)
- 使用数组,可以发现数组的index从1开始。
verticledata=> select info[1][1] from test_array;
info ------
姓名
姓名
(2 行记录)
verticledata=> select info[2][2] from test_array;
info --------------
个人财产出资
个人财产出资
(2 行记录)
那现在我的问题是:我需要把个人财产出资从‘[[“姓名”,“出资方式”],[“任守智”,“个人财产出资”]]’这里面取出来该怎么办?
将中括号替换为花括号即可,但是文档里面没有找到这个函数。。。。
select ((replace(replace("投资人信息",'[','{'),']','}'))