2015-12-30 52 views
0

我的數據庫中有太多的鏈接,需要刪除其中的一些字符串。 像以下鏈接:如何刪除數據庫文件中的一些字符串

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) 
+0

2評論:它應該搜索'.gif'而不是'gif'。我們也想保留這個部分,所以我們要'+ 2'而不是' - 1'(或''3'''.')。所以:'選擇左(yourValue,CHARINDEX('.gif',yourValue)+ 3)' – EvilBob22

0

我擴大對拉胡爾·帕蒂的答案。它適用於.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,如果根本沒有.,則會出錯。

相關問題