我需要在数据库中更新并替换所有这些IP并保留一些索引
这= ftp://192.168.1.2/Y2018/M2/JNxxxxx
to = ftp://192.168.2.2/Y2018/M2/JNxxxxxx
仅更改IP并保留所有索引默认值
答案 0 :(得分:0)
只需替换
' myvalue的'用你的IP改变
UPDATE MYTABLE
SET MYCOLUMN = REPLACE(MYCOLUMN, SUBSTRING(MYCOLUMN, 7, CHARINDEX('/', MYCOLUMN, 7)-7) ,'NEWVALUE')
WHERE MYCOLUMN= 'MYVALUE'
;
答案 1 :(得分:0)
仅更新 IP地址使用STUFF()
功能
UPDATE table
SET Col = STUFF(Col, 7, 11, '192.168.2.2')
在这里,我假设IP
的固定长度
编辑: - 使用动态长度方法
UPDATE table
SET Col = STUFF(Col, 7, (PATINDEX('%[^://]/%', Col)+1)-7, '192.168.100.254')
答案 2 :(得分:0)
您可以尝试此解决方案:
declare @s varchar(50) = 'ftp://192.168.1.2/Y2018/M2/JNxxxxx', @ip varchar(50) = '192.168.2.2'
select @s, STUFF(@s,
--index of //
CHARINDEX('//', @s, 1) + 2,
--length, that actual IP holds in a string
CHARINDEX('/', @s, CHARINDEX('//', @s, 1) + 2) - CHARINDEX('//', @s, 1) - 2,
--new IP address to paste in place of an old one
@ip)