我有一个名为 DN 的数据库表列,其值是 LDAP 用户的可分辨名称,并且 CN 值带有逗号,例如:'CN=User,name
,OU=People,DC =域,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=');
关于mysql - 使用正则表达式使用 mysql 使用转义字符更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41964013/