如何删除数据库文件中的某些字符串

时间:2015-12-30 13:54:52

标签: sql string

我的数据库中有太多链接需要删除其中的一些字符串。 如下面的链接:

  

example.com/gallery/images/53637678653059406553.gif.pagespeed.ce.zHxD2y5wHz.gif

我需要在第一个gif或jpeg或png之后删除所有内容。 (.pagespeed.ce.zHxD2y5wHz.gif)有人有意帮助我吗?

2 个答案:

答案 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,如果根本没有.,则会出错。