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

如何用REGEX或其他方法优化嵌套REPLACE的SQL字符替换语句

SQL优化方案

你可以用正则替换替代多层嵌套的REPLACE,代码可读性和可维护性会大幅提升,新增规则时也不用再加嵌套层级。不同数据库的正则函数语法略有差异,下面给出主流数据库的实现:

MySQL 8.0+/MariaDB 10.0+ 版本

SELECT LOWER(
    REGEXP_REPLACE(
        -- 一次性匹配所有需要删除的字符/字符组合,替换为空
        REGEXP_REPLACE(SCHOOL_NAME, '''|\\.| -|\\. ', ''),
        -- 将连续空格替换为单个短横线
        '\\s+', '-'
    )
) AS formatted_school_name
FROM your_table;

PostgreSQL 版本

SELECT LOWER(
    REGEXP_REPLACE(
        REGEXP_REPLACE(SCHOOL_NAME, '''|\.| -|\. ', '', 'g'),
        '\s+', '-', 'g'
    )
) AS formatted_school_name
FROM your_table;

效果验证

上述代码匹配了你要求的所有转换规则,测试样本和输出完全符合预期:

  • 输入 James valley court ad → 输出 james-valley-court-ad
  • 输入 Saint's lee park school → 输出 saints-lee-park-school
  • 输入 Harrison lodge - and hospital → 输出 harrison-lodge-and-hospital

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:54:03