正则表达式不可用于替换,但多次替换的行为与正则表达式相同
UPDATE `usertree` SET branchIndex=REPLACE(branchIndex,'80',''),
branchIndex=REPLACE(branchIndex,',,',',') WHERE id=1
它的成功运作,它有缺点吗?我以后遇到了麻烦
我的新树游戏附带了大量技术:
我在列名branchIndex中保存了添加的分支,它是一个逗号分隔的字符串,在树上保存分支位置。
但是当用户剪切分支时,我需要从字符串中删除该索引,并保持字符串准确。此外,2000至3000名用户也会更频繁地发生这种情况。
答案 0 :(得分:1)
如果要在同一列上进行多次替换,则应将其写为:
SET branchIndex = REPLACE(REPLACE(branchIndex, '80', ''), ',,', ',')
但是不是以逗号分隔的字符串,而是将分支放入单独的表中可能会更好。然后,您只需添加和删除表中的行。
答案 1 :(得分: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,', ','));