0

我在一列中有如下字符串值:

|333|,|331|

我想执行如下平衡字符串替换:

xxTM_333_TMxx,xxTM_331_TMxx

我试图用REPLACEand来做到这一点CONCAT函数来做到这一点,但没有得到想要的输出。

例如:

SELECT REPLACE('|333|,|331|','|','xxTM');

这取代了其中一个|符号,但不是其匹配(平衡)的对应物。

如何在 MySQL 中实现此结果?

4

1 回答 1

3
SET @st := '|333|,|331|';

SELECT
  CASE WHEN @st LIKE '|%|' THEN
    CONCAT(
      'xxTM',
      REPLACE(REPLACE(@st, '|,|', '_TMxx,xxTM_'), '|', '_'),
      'TMxx')
  END rep_st;

在此处查看小提琴。

于 2013-09-10T14:13:55.497 回答