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

SQL中实现单语句批量替换字符串内容的技术问询

批量为问答对每行添加~前缀的单UPDATE语句实现

根据不同数据库类型,提供对应的单UPDATE语句方案:

MySQL/MariaDB(8.0+版本)

利用REGEXP_REPLACE全局匹配行起始位置(包括字符串开头和换行后的位置),批量添加前缀:

UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '^|(\r\n|\n|\r)', '$1~');
  • 正则说明:^匹配字符串开头,(\r\n|\n|\r)捕获所有类型的换行符,替换时保留原换行符并追加~,确保每行开头都被添加前缀。

SQL Server

2017+版本(支持正则)

UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '^|(\r?\n)', '$1~');

低版本(无正则支持)

通过拆分字符串再拼接的方式实现:

UPDATE t
SET your_column = LEFT(
    (SELECT '~' + value + CHAR(10)
     FROM STRING_SPLIT(t.your_column, CHAR(10))
     FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),
    LEN((SELECT '~' + value + CHAR(10)
         FROM STRING_SPLIT(t.your_column, CHAR(10))
         FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)')) - 1
)
FROM your_table t;
  • 注:LEFT函数用于移除拼接后末尾多余的换行符。

PostgreSQL

使用REGEXP_REPLACE并指定全局替换参数:

UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '^|(\n|\r|\r\n)', '\1~', 'g');
  • 'g'参数表示全局替换所有匹配的行起始位置。

测试建议

执行UPDATE前,先通过SELECT验证替换结果,避免误修改:

-- 以MySQL为例
SELECT your_column, REGEXP_REPLACE(your_column, '^|(\r\n|\n|\r)', '$1~') AS updated_column
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:55:41