在videos
表中替换为具有许多不同URL类型的列URL
。
我使用MariaDB 10.3
https://google.com/questions/ask?963
https://google.com/embed/57=66.88.028.10/i/03/077fsdf
https://google.com/top57=66.88.028.10/i/03/077
https://video.net/emb.html?asdeen45dr57=66.88.028.10/i/03/07776/asdeen45dr57
https://video.net/fomdfk5f7s1f.html
https://video.net/emb.html?qsfeen4gttv1=54.47.158.810/i/11/00036/qsfeen4gttv1
我需要删除特定URL的一部分(在=
之后全部删除)
并替换为.html
来自
https://video.net/emb.html?asdeen45dr57=66.88.028.10/i/03/07776/asdeen45dr57
到
https://video.net/emb.html?asdeen45dr57.html
在这种情况下,将替换
=66.88.028.10/i/03/07776/asdeen45dr57
使用
.html
请注意,=
符号后的URL部分对于每个URL都是不同的。
答案 0 :(得分:4)
如果运行的是MySql 8.0或更高版本,则可以使用regexp_replace
UPDATE videos
SET url = REGEXP_REPLACE(url, '=.*$', '.html')
WHERE url LIKE 'https://video.net%'
没有正则表达式,它将起作用(对于MySql 5. *也很好)
UPDATE videos
SET url = CONCAT(SUBSTR(url, 1, INSTR(url, '=') - 1), '.html')
WHERE url LIKE 'https://video.net%'
答案 1 :(得分:1)
您可以这样做:
update t
set url = concat(substring_index(url, '=', 1), '.html')
where url like '%-%'