我将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”],这样我才能替换该详细信息列中的特定字符串。
任何有关正则表达式模式的想法/建议都会有所帮助