我的数据库中有太多的链接,需要删除其中的一些字符串。 像以下链接:如何删除数据库文件中的一些字符串
example.com/gallery/images/53637678653059406553.gif.pagespeed.ce.zHxD2y5wHz.gif
我需要删除第一GIF或JPEG或PNG文件后的所有内容。 (.pagespeed.ce.zHxD2y5wHz.gif)有人有想法帮助我?
我的数据库中有太多的链接,需要删除其中的一些字符串。 像以下链接:如何删除数据库文件中的一些字符串
example.com/gallery/images/53637678653059406553.gif.pagespeed.ce.zHxD2y5wHz.gif
我需要删除第一GIF或JPEG或PNG文件后的所有内容。 (.pagespeed.ce.zHxD2y5wHz.gif)有人有想法帮助我?
在SQL Server中,你可以尝试这样的:
LEFT(yourValue, CHARINDEX('gif', yourValue) - 1)
在MYSQL
SELECT SUBSTRING_INDEX(yourValue, 'gif', 1)
2评论:它应该搜索'.gif'而不是'gif'。我们也想保留这个部分,所以我们要'+ 2'而不是' - 1'(或''3'''.')。所以:'选择左(yourValue,CHARINDEX('.gif',yourValue)+ 3)' – EvilBob22
我扩大对拉胡尔·帕蒂的答案。它适用于.gif
,但我们不知道正在使用的文件扩展名。我建议寻找第二个.
并将其切断。
下面将样品在MS SQL格式
寻找第一.
的位置:
CHARINDEX('.', yourValue)
该.
后获得的一切(或者至少在下一个10个字符):
SUBSTRING(yourValue, CHARINDEX('.', yourValue) + 1, 10)
找到下一个.
在该子字符串中的位置G:
CHARINDEX('.',SUBSTRING(yourValue, CHARINDEX('.', yourValue) + 1, 10))
添加两个位置找到第二.
整个字符串中的位置:
CHARINDEX('.', yourValue) + CHARINDEX('.', SUBSTRING(yourValue, CHARINDEX('.', yourValue) + 1, 10))
只保留数据到那个第二.
:
LEFT(yourValue, CHARINDEX('.', yourValue) + CHARINDEX('.', SUBSTRING(yourValue, CHARINDEX('.', yourValue) + 1, 10)) - 1)
请注意,依赖于数据的问题仍然存在。如果没有第二个.
,则会切断.gif
,如果根本没有.
,则会出错。
您正在使用哪个数据库? –