我的数据库中有太多链接需要删除其中的一些字符串。 如下面的链接:
example.com/gallery/images/53637678653059406553.gif.pagespeed.ce.zHxD2y5wHz.gif
我需要在第一个gif或jpeg或png之后删除所有内容。 (.pagespeed.ce.zHxD2y5wHz.gif)有人有意帮助我吗?
答案 0 :(得分:1)
在SQL Server中,您可以尝试这样:
LEFT(yourValue, CHARINDEX('gif', yourValue) - 1)
在MYSQL中
SELECT SUBSTRING_INDEX(yourValue, 'gif', 1)
答案 1 :(得分:0)
我正在扩大Rahul Tripathi的答案。它适用于.gif
,但我们不知道正在使用的文件扩展名。我建议搜索第二个.
并将其删除。
以下MS SQL格式的示例
找到第一个.
的位置:
CHARINDEX('.', yourValue)
在.
之后获取所有内容(或至少接下来的10个字符):
SUBSTRING(yourValue, CHARINDEX('.', yourValue) + 1, 10)
在该子字符串中查找下一个.
的位置:
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
,如果根本没有.
,则会出错。