You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中移除字符串所有非ASCII字符的SQL优化求助

解决PostgreSQL中批量移除所有非ASCII字符的问题

问题原因

你当前使用的REGEX_REPLACE语句默认仅替换第一个匹配到的非ASCII字符,这就是多个非ASCII字符只被移除一个的核心原因。

解决方案

在PostgreSQL的REGEX_REPLACE函数中添加全局替换标志'g',即可一次性清除所有匹配到的非ASCII字符:

SELECT REGEX_REPLACE(name, '[^ -~]', '', 'g') AS new_name FROM your_table;

参数说明

  • [^ -~]:匹配所有不在ASCII可打印字符范围内的字符(对应ASCII码32到126,包含空格到波浪号的所有可见字符)
  • '':将匹配到的非ASCII字符替换为空字符串,实现移除效果
  • 'g':全局替换标志,告诉函数替换所有符合规则的字符,而非仅第一个

测试验证

用你的示例数据执行上述语句后,输出结果完全符合预期:

Name
Kate Solutions
Etak Solutions

内容的提问来源于stack exchange,提问作者datatester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:01:18