当我的网站前端插入失败时,我有一个用于错误记录的表。它将params URL存储为文本字符串,以便我们可以看到发送的值以及失败的原因。
我正在使用这些数据来尝试从中恢复一些记录。
这就是我记录中的记录:
xml=<data><optional><Account>192070041</Account></optional></data>, submitter=Q1370, target=Q1234, escalationType=esc, escalationReason=277, feedback=cx req live esc to have us release his alh payment for 8487.18, adv cx his funds are eligble for release on july 2nd at 445 pm est, preventable=0,
我正在尝试恢复一些数据的问题是,在我用PHP编写的脚本中,我通过在= sign
上进行爆炸来获得每个值,从而得到所有参数。
嗯,feedback=
部分恰好是包含逗号的评论,并且搞砸了很多东西。
我需要做的是在字符串中,我需要找到feedback=xxxxxxxxxx,
中的所有内容,并删除该部分中的所有逗号或替换为|
管道,以便我可以更改它们回来以后。
我在这个领域缺乏知识,我希望有人可以指出我正确的方向,这样我就能在大众层面上恢复一些记录。
实施例:
在字符串之前 - param1=dfsfsf, param2=fdsfsdfds, param3=bob, how are you doing today?
字符串后 - param1=dfsfsf, param2=fdsfsdfds, param3=bob| how are you doing today?
答案 0 :(得分:1)
UPDATE YourTable SET URL=REPLACE(URL,',','|')
请参阅https://msdn.microsoft.com/en-us/library/ms186862.aspx和https://msdn.microsoft.com/en-us/library/ms181984.aspx
稍后修改:我更仔细地阅读了您的问题,现在我知道您只想在某个子字符串后面替换逗号。尝试这样的事情:
DECLARE @URL NVARCHAR(1000)
SET @URL='Before String - param1=dfsfsf, param2=fdsfsdfds, param3=bob, how are you doing today?'
SELECT LEFT(@URL,ISNULL(NULLIF(CHARINDEX('param3=',@URL),0),LEN(@URL)))
+ISNULL(REPLACE(SUBSTRING(@URL,NULLIF(CHARINDEX('param3=',@URL),0),1000),',','|'),'')