解决PostgreSQL Array使用中的一些小问题

 更新时间:2021年01月27日 10:41:36   作者:Joshua Chan  
这篇文章主要介绍了解决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]; --报错

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

select(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_to_string 功能

开始

用 第二个参数连接数组元素,例:

postgres=# select array_to_string (ARRAY[1,2,3],'##');
 array_to_string 
-----------------
 1##2##3
(1 row)
postgres=# 

结束~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • postgreSQL数据库基本概念教程

    postgreSQL数据库基本概念教程

    这篇文章主要为大家介绍了postgreSQL数据库的基本概念教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • postgresql初始化之initdb的使用详解

    postgresql初始化之initdb的使用详解

    这篇文章主要介绍了postgresql初始化之initdb的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL聚合函数的分组排序使用示例

    PostgreSQL聚合函数的分组排序使用示例

    这篇文章主要为大家介绍了PostgreSQL聚合函数的分组排序使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • postgreSQL使用pgAdmin备份服务器数据的方法

    postgreSQL使用pgAdmin备份服务器数据的方法

    这篇文章主要介绍了postgreSQL使用pgAdmin备份服务器数据的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • postgresql 查询集合结果用逗号分隔返回字符串处理的操作

    postgresql 查询集合结果用逗号分隔返回字符串处理的操作

    这篇文章主要介绍了postgresql 查询集合结果用逗号分隔返回字符串处理的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL设置主键从1开始自增的详细步骤

    PostgreSQL设置主键从1开始自增的详细步骤

    和MySQL不同,在 PostgreSQL 中,设置主键从1开始自增并重新开始自增是通过序列(sequence)来实现的,本文给大家分享PostgreSQL设置主键从1开始自增的详细步骤,感兴趣的朋友一起看看吧
    2023-11-11
  • 查询PostgreSQL中所有表逻辑外键的方法

    查询PostgreSQL中所有表逻辑外键的方法

    本文介绍了如何查询PostgreSQL中所有表的逻辑外键,并指导您如何先删除再重新建立这些外键,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友一起看看吧
    2023-08-08
  • PostgreSQL查询修改max_connections(最大连接数)及其它配置详解

    PostgreSQL查询修改max_connections(最大连接数)及其它配置详解

    postgresql数据库最大连接数是系统允许的最大连接数,当数据库并发用户超过该连接数后,会导致新连接无法建立或者连接超时,这篇文章主要给大家介绍了关于PostgreSQL查询修改max_connections(最大连接数)及其它配置的相关资料,需要的朋友可以参考下
    2024-01-01
  • PostgreSQL批量update与oracle差异详解

    PostgreSQL批量update与oracle差异详解

    这篇文章主要介绍了PostgreSQL批量update与oracle差异,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • postgresql数据库表ID自增的实现代码

    postgresql数据库表ID自增的实现代码

    postgresql数据库可以创建主键,但是没有像mysql那样直接指定主键自增的auto_increment关键字,因此如果在postgresql中创建表指定主键自增使用auto_increment会报错,本文通过一个实例给大家演示自增ID的实现,需要的朋友可以参考下
    2023-12-12

最新评论