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

如何删除表字段值中的括号及内部内容?正则表达式查询写法

解决方法:移除字段中的括号及括号内数值

核心思路是用正则表达式匹配所有(数字)格式的内容,将其替换为空字符串。对应的正则模式为\(\d+\),具体实现因数据库类型略有不同,以下是主流数据库的操作语句:

1. MySQL/MariaDB(8.0及以上版本)

使用REGEXP_REPLACE函数做全局替换:

-- 先查询验证结果(推荐先验证再更新)
SELECT REGEXP_REPLACE(your_column, '\\(\\d+\\)', '') AS cleaned_column
FROM your_table;

-- 执行更新
UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '\\(\\d+\\)', '')
WHERE your_column REGEXP '\\(\\d+\\)'; -- 仅更新包含目标格式的行,提升效率

2. PostgreSQL

同样使用REGEXP_REPLACE,需指定'g'参数开启全局替换:

-- 验证结果
SELECT REGEXP_REPLACE(your_column, '\(\d+\)', '', 'g') AS cleaned_column
FROM your_table;

-- 执行更新
UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '\(\d+\)', '', 'g')
WHERE your_column ~ '\(\d+\)';

3. SQL Server(2016及以上版本)

使用REGEXP_REPLACE,通过参数控制全局替换:

-- 验证结果
SELECT REGEXP_REPLACE(your_column, '\(\d+\)', '', 1, 0) AS cleaned_column
FROM your_table;

-- 执行更新
UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '\(\d+\)', '', 1, 0)
WHERE your_column LIKE '%(%)%';

4. Oracle

使用REGEXP_REPLACE函数:

-- 验证结果
SELECT REGEXP_REPLACE(your_column, '\(\d+\)', '') AS cleaned_column
FROM your_table;

-- 执行更新
UPDATE your_table
SET your_column = REGEXP_REPLACE(your_column, '\(\d+\)', '')
WHERE REGEXP_LIKE(your_column, '\(\d+\)');

正则表达式说明

  • \(:转义左括号(正则中括号是特殊字符,必须转义才能匹配实际的左括号)
  • \d+:匹配1个或多个数字(+表示至少出现一次)
  • \):转义右括号,匹配实际的右括号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:55:16