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

SQL Server如何删除所有记录特定列中斜杠及前缀内容?

解决方案:移除Action字段中斜杠前缀部分

嘿,这个需求很容易实现,我给你整理了几种主流数据库下的操作方法,你可以根据自己使用的数据库来选择:

1. MySQL/MariaDB 版本

用SUBSTRING_INDEX函数可以直接取最后一个斜杠后面的内容,非常方便:

-- 先验证修改结果(推荐先执行这个确认)
SELECT 
  Id, 
  Action, 
  SUBSTRING_INDEX(Action, '/', -1) AS Modified_Action
FROM your_table_name
WHERE Action LIKE '%/%';

-- 确认无误后执行更新
UPDATE your_table_name
SET Action = SUBSTRING_INDEX(Action, '/', -1)
WHERE Action LIKE '%/%';

说明:SUBSTRING_INDEX第三个参数传-1表示取最后一个分隔符(这里是/)右侧的内容,WHERE条件确保只处理包含斜杠的记录,不会影响像GetUser这种没有斜杠的条目。

2. PostgreSQL 版本

如果是单斜杠的情况,用split_part就够;如果要兼容多斜杠的场景(比如a/b/c要改成c),推荐用反转字符串的方法:

-- 验证结果
SELECT 
  Id, 
  Action, 
  reverse(split_part(reverse(Action), '/', 1)) AS Modified_Action
FROM your_table_name
WHERE Action LIKE '%/%';

-- 执行更新
UPDATE your_table_name
SET Action = reverse(split_part(reverse(Action), '/', 1))
WHERE Action LIKE '%/%';

说明:先反转字符串,取第一个斜杠前的内容,再反转回来,就能得到最后一个斜杠右侧的部分,不管有多少个斜杠都适用。

3. SQL Server 版本

用REVERSE和CHARINDEX组合来定位最后一个斜杠的位置:

-- 验证结果
SELECT 
  Id, 
  Action, 
  REVERSE(SUBSTRING(REVERSE(Action), 1, CHARINDEX('/', REVERSE(Action)) - 1)) AS Modified_Action
FROM your_table_name
WHERE Action LIKE '%/%';

-- 执行更新
UPDATE your_table_name
SET Action = REVERSE(SUBSTRING(REVERSE(Action), 1, CHARINDEX('/', REVERSE(Action)) - 1))
WHERE Action LIKE '%/%';

重要提醒

执行更新操作前,一定要先运行SELECT语句验证修改后的结果是否符合预期,或者先备份表数据,避免误操作导致数据丢失哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:23:17