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

如何使用SQL按匹配规则更新列中的指定数据(URL转换场景)

如何将数据库表中的绝对URL转换为相对URL?

嘿,这个需求很常见,用SQL的字符串处理功能就能轻松解决!核心思路就是把绝对URL里的域名前缀(http://www.myexample.com)替换成空字符串,只保留后面的路径部分。下面分几种主流数据库给你具体的实现方案:

MySQL/MariaDB 方案

直接用REPLACE()函数就能搞定,加上WHERE条件只处理绝对URL的行,避免影响本来就是相对路径的数据:

-- 先测试替换结果是否正确
SELECT REPLACE(url, 'http://www.myexample.com', '') AS converted_url
FROM your_table_name
WHERE url LIKE 'http://www.myexample.com%';

-- 确认没问题后执行更新
UPDATE your_table_name
SET url = REPLACE(url, 'http://www.myexample.com', '')
WHERE url LIKE 'http://www.myexample.com%';

PostgreSQL 方案

基础替换和MySQL一样,如果你的URL可能同时存在http和https协议,用正则替换会更灵活:

-- 基础替换(仅处理http)
UPDATE your_table_name
SET url = REPLACE(url, 'http://www.myexample.com', '')
WHERE url LIKE 'http://www.myexample.com%';

-- 正则替换(同时处理http和https)
UPDATE your_table_name
SET url = REGEXP_REPLACE(url, '^https?://www.myexample.com', '')
WHERE url ~ '^https?://www.myexample.com';

SQL Server 方案

同样用REPLACE(),如果是2017及以上版本,也支持正则替换来兼容多协议:

-- 基础替换
UPDATE your_table_name
SET url = REPLACE(url, 'http://www.myexample.com', '')
WHERE url LIKE 'http://www.myexample.com%';

-- 正则替换(兼容http/https)
UPDATE your_table_name
SET url = REGEXP_REPLACE(url, '^https?://www.myexample.com', '')
WHERE url LIKE 'http://www.myexample.com%' OR url LIKE 'https://www.myexample.com%';

重要提醒

  • 执行UPDATE前一定要先用SELECT测试替换结果,确保符合预期,避免误改数据!
  • 如果你的域名有其他变体(比如不带www、不同端口等),需要根据实际情况调整替换的字符串或正则表达式。

内容的提问来源于stack exchange,提问作者J.BizMai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:28:54