微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql varchar字段regexp_replace正则替换

1.替换目标
1).contact字段类型 varchar。
2).去掉字段中连续的两个,每个等号后面数字不同,effective_caller_id_name=051066824513,effective_caller_id_number=051066824513。

2.查询原字段内容

select contact
from pbx_agents
where contact ~ 'effective_caller_id_name=' limit 2

"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,effective_caller_id_name=051066824513,effective_caller_id_number=051066824513,cti_account=9,cti_agent_id=1102441276,cti_account_sid=5be394c3f8754bd89b9618937c687068,absolute_codec_string=\'OPUS,G729 (...)"
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,effective_caller_id_name=051066824824,effective_caller_id_number=051066824824,cti_agent_id=1103211003,cti_account_sid=4f3fae0e71b74bdaa3824e6ec7771815,G729 (...)"

3.查询语句验证替换

select regexp_replace(contact,'(effective_caller_id_name=\d+,)+?','','g')
from pbx_agents
where contact ~ 'effective_caller_id_name='

"{sip_append_audio_sdp=a=fmtp:18 annexb=no,G729\'}sofia/gateway/agentProxy/1102441276"
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,G729\'}sofia/gateway/agentProxy/1103211003"

4.执行替换操作

update pbx_agents set contact = regexp_replace(contact,'g')

where contact ~ 'effective_caller_id_name='

Query returned successfully: 3929 rows affected,505 msec execution time.

5.查询验证替换

select contact
from pbx_agents

"{sip_append_audio_sdp=a=fmtp:18 annexb=no,cti_agent_id=1100891004,cti_account_sid=23869df09f2f47f0ae80a7cbc45e5185,G729\'}sofia/gateway/agentProxy/1100891004""{sip_append_audio_sdp=a=fmtp:18 annexb=no,cti_agent_id=1102081069,cti_account_sid=9f2c1574fcb5497994cb9b892aee0d1c,G729\'}sofia/gateway/agentProxy/1102081069"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐