SQL-Server更新并替换一些字符索引

时间:2018-03-12 09:45:15

标签: sql-server

我需要在数据库中更新并替换所有这些IP并保留一些索引

  

这= ftp://192.168.1.2/Y2018/M2/JNxxxxx
  to = ftp://192.168.2.2/Y2018/M2/JNxxxxxx

仅更改IP并保留所有索引默认值

3 个答案:

答案 0 :(得分:0)

只需替换

  1. mytable with your table name
  2. mycolumn,列名为
  3. ' NEWVALUE'用你的新ip
  4. ' 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)