SQL:用于替换查询的正则表达式

时间:2019-07-12 03:37:58

标签: sql sql-server regex

我将SQL表作为UserInfo包含列[id,用户名,详细信息]。我需要从列详细信息中更新字符串的一部分。

例如。详情列将如下所示

{"username":"user.sample@nomail.org","rollno":45,"gender":"male"}

P.S:在实际的数据库中,此列确实冗长,包含更多详细信息,例如,我在上面引用了一些详细信息。

条件是,“详细信息”列中的用户名值应与“用户名”列中的值相同。

我在数据库中有 n 条记录不匹配,这意味着用户名列的值与详细信息列中的用户名信息不同。

Ex

id - username - details
23 - new-user@nomail.org - {"username":"user.sample@nomail.org","rollno":45,"gender":"male"}

因此,我尝试用用户名列值替换详细信息列中的“用户名”:“值”

EX-预期应该是

id - username - details
23 - new-user@nomail.org - {"username":"new-user@nomail.org","rollno":45,"gender":"male"}

要更新UserInfo,我想尝试

update UserInfo
set details = replace(details, \Regex\ ,"username:"+ username)
where id not in (select id from UserInfo where details like '%'+userid+'%' )

我需要进行正则表达式模式匹配,[“ username”:“ mail-id”],这样我才能替换该详细信息列中的特定字符串。

任何有关正则表达式模式的想法/建议都会有所帮助

0 个答案:

没有答案