如果用户名中还有其他非法字符,则可以使用鲜为人知的语法指定其他分隔符:
...GROUP_CONCAt(name SEPARATOR '|')...
…您要允许管道吗?或任何字符?
转义分隔符,也许用反斜杠,但是在这样做之前,转义自己反斜杠:
group_concat(replace(replace(name, '\', '\\'), '|', '\|') SEPARATOR '|')
这将:
- 用另一个反斜杠转义任何反斜杠
- 用反斜杠转义分隔符
- 将结果与分隔符连接起来
要获得未转义的结果,请以相反的顺序执行相同的操作:
用分隔符(不带反斜杠)分隔结果。实际上,这有点棘手,您希望将其拆分成没有 奇数个 黑杠的位置。此正则表达式将匹配以下内容:
(?<!\)(?:\\)*|
用文字替换所有转义的分隔符,即替换 | 与|
- 用singe反斜杠替换所有双反斜杠,例如用替换\



