我的情况就像在我的数据库中我有像
这样的链接http://www.myurl.com/url-blog/entry/camel-shadows-pic-amazing-.htmlhttps://www.testurl.com/gatoradecoupons
http://www.myurl.com/url-blog/entry/cat-mountain-at-ukraine.htmlhttps://www.testurl.com/user/212294
我想删除.html
之后的文字。我想删除htmlhttps
之外的文本。我们可以检查网址是否包含此内容并修剪除.html
所需的输出
http://www.myurl.com/url-blog/entry/camel-shadows-pic-amazing-.html
http://www.myurl.com/url-blog/entry/cat-mountain-at-ukraine.html
数据库中有数千个这样的URL。我想知道是否有任何方法可以一次性删除。 请帮忙
答案 0 :(得分:3)
执行此操作的一种方法是使用substring_index()
:
select concat(substring_index(url, '.html', 1), '.html')
如果某些值没有.html
,那么上面的内容会添加它。为此,您可以使用case
:
select (case when url like '%.html%'
then concat(substring_index(url, '.html', 1), '.html')
else url
end)
并且,一旦您使用select
进行测试,您可以根据需要更新值:
update t
set url = concat(substring_index(url, '.html', 1), '.html')
where url like '%.html%';