我的數據庫中有太多的鏈接,需要刪除其中的一些字符串。 像以下鏈接:如何刪除數據庫文件中的一些字符串
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
,如果根本沒有.
,則會出錯。
您正在使用哪個數據庫? –