加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

处理PostgreSQL Array使用时的一些小问题

发布时间:2021-10-09 16:00:29 所属栏目:动态 来源:互联网
导读:这篇文章主要介绍了解决PostgreSQL Array使用中的一些小问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。 在PostgreSQL 中可以使用Arra

这篇文章主要介绍了解决PostgreSQL Array使用中的一些小问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

 

在PostgreSQL 中可以使用Array数据结构,例如

 

select array[1,2,3];

return {1,2,3}

 

 

 

但是,如果

 

select array[1,2,3][1]; --会报错

select (select array[1,2,3])[1] --可以使用

 

 

 

那么在用正则匹配函数 regexp_match 就会遇到这样的问题,如

 

select regexp_match('123-123', '(d+)-(d+)'); --return {123, 123}

select regexp_match('123-123', '(d+)-(d+)')[1]; --报错

 

 

 

但是,如果你想获取其中一个元素,你就得使用嵌套查询,如

 

1select(select regexp_match('123-123', '(d+)-(d+)'))[1]; --return 123

 

其次,你如果要用regexp_matches 加上全局搜索,可能会生成多行数据,如

 

select 'a', array(select regexp_matches('aa-aa', '(aa)+', 'g'));

-- return 2 rows

a {aa}

a {aa}

 

 

 

合并为一行,需要array函数

 

select 'a', array(select regexp_matches('aa-aa', '(aa)+', 'g'));

--return

a {{aa},{aa}}

 

 

 

取其中的元素

 

select a, b[1][1] from (select 'a' as a, array(select regexp_matches('aa-aa', '(aa)+', 'g')) as b) as c;

--return

aa



处理PostgreSQL Array使用时的一些小问题

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读