我正在浏览MySQL中的一些数据,我需要从看起来像这样的列中删除一些信息.
**sometext** (something else)
Run Code Online (Sandbox Code Playgroud)
遗憾的是,数据不一致; 并非所有数据都遵循这种结构,其中一些只是第一部分.
**sometext**
Run Code Online (Sandbox Code Playgroud)
因此,我需要一种方法来删除括号之间的所有内容,然后删除括号本身,以便离开**sometext**零件.
Zan*_*ien 11
使用此解决方案:
UPDATE tbl
SET txt = REPLACE(txt, SUBSTRING(txt, LOCATE('(', txt), LENGTH(txt) - LOCATE(')', REVERSE(txt)) - LOCATE('(', txt) + 2), '')
WHERE txt LIKE '%(%)%'
Run Code Online (Sandbox Code Playgroud)
请记住,由于MySQL的最小正则表达式支持的限制,这将不起作用(将返回空白):
(replacetext1) keepthistext1 (replacetext2) keepthistext2 (replacetext3)
Run Code Online (Sandbox Code Playgroud)
...如果你想保留keepthistext1,keepthistext2因为它将删除第一个左括号和最后一个右括号之间的所有内容.