1

正则表达式不可用于替换,但是多个替换的行为与正则表达式一样吗

UPDATE `usertree` SET branchIndex=REPLACE(branchIndex,'80',''),
branchIndex=REPLACE(branchIndex,',,',',') WHERE id=1

它的工作成功,它有缺点吗?我以后遇到麻烦

我的新树游戏附有大量技术:

我将添加的分支保存在列名 branchIndex 中,它是一个逗号分隔的字符串,用于保存树上的分支位置。

但是当用户剪切一个分支时,我需要从字符串中删除该索引,并保持字符串准确。此外,超过 2000 - 3000 个用户会更频繁地发生这种情况。

4

2 回答 2

1

如果要对同一列进行多次替换,则应将其写为:

SET branchIndex = REPLACE(REPLACE(branchIndex, '80', ''), ',,', ',')

但与其使用逗号分隔的字符串,不如将分支放在单独的表中。然后,您只需从表中添加和删除行。

于 2012-10-25T07:38:28.987 回答
0

这些步骤可以在一次运行中完成,为了更清晰的视图而中断:

SELECT REPLACE(CONCAT(',','80,138,149,145,120,180,280',','), ',80,', ',');

最好保持这样:

SELECT TRIM(BOTH ',' FROM REPLACE(CONCAT(',','80,138,149,145,120,180,280',','), ',80,', ','));
于 2012-11-01T07:34:56.897 回答