我不想替换字符串中的所有破折号,而是只替换作为GUID/UUID一部分的那些破折号。
替换前的:
玛丽-安妮·史密斯是伊利诺伊大学的物理学教授.她的论文集中在希格斯玻色子粒子上。她的教授ID是01140384-5189-11 ID beb7-fa163e98ff8。你可以在玛丽-安尼斯@ui.edu找到她。
替换后的:
玛丽-安妮·史密斯是伊利诺伊大学的物理学教授.她的论文集中在希格斯玻色子粒子上。她的教授ID是01140384518911edbeb7fa163e98ff8。你可以在玛丽-安尼斯@ui.edu.
联系她
发布于 2022-10-22 00:43:48
使用Regexp_Replace试试这个
Select Regexp_Replace
('string',
'[0-9]{8}-[0-9]{4}-[a-z0-9]{4}-[a-
z0-9]{12}', '-','') from table;如果我们按数据的符号学,我们也可以把它除以"id is“。
例如
Select
Replace(Substr(string
Instr(String,
'Id is'
)+1,Instr(String,
'Id is'
)+1+len(hexIdformat),
'-','')就像上面这样。
发布于 2022-10-21 21:55:32
如果使用的是MySQL 8.x,则可以使用REGEXP_SUBSTR()从字符串中获取UUID,删除破折号,并将其替换为UUID。
SELECT REPLACE(
column,
REGEXP_SUBSTR(column, '[0-9a-f]+-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]+'),
REPLACE(REGEXP_SUBSTR(column, '[0-9a-f]+-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]+'), '-', '')) AS column_modified
FROM yourTable请注意,这将只替换列中的第一个UUID。如果需要进行更多的替换,可以编写一个存储函数,在循环中重复替换。
https://stackoverflow.com/questions/74159459
复制相似问题