我有一个名为DN的数据库表列,其值是LDAP用户的专有名称,并且CN值带有逗号,例如:'CN=User,name,OU = People,DC = domain,DC = com'。

CN的某些值也可能没有逗号,例如'CN=UserName,OU = People,DC = domain,DC = com'。我只想为CN名称中的逗号添加转义字符“ \”,而不要为OU和DC字符之前的逗号添加转义字符。我尝试使用以下3条语句添加转义字符。

UPDATE LOGININFO SET DN = REPLACE(DN, ',', '\\,');

UPDATE LOGININFO SET DN = REPLACE(DN, '\\,OU=', '\,OU=');

UPDATE LOGININFO SET DN = REPLACE(DN, '\\,DC=', '\,DC=');


寻找单个mysql更新语句,将“ CN = User,name,OU = People,DC = domain,DC = com”替换为“ CN = User \,name,OU = People,DC = domain,DC = com”

最佳答案

您似乎想要嵌套替换。这是您想要的吗?

UPDATE LOGININFO
    SET DN = REPLACE(REPLACE(REPLACE(DN, ',', '\\,'), '\\,OU=', '\,OU='), '\\,DC=', '\,DC=');

10-04 22:54
查看更多