2012-10-25 46 views
1

正則表達式是不可用於取代但對於多個替換表現爲正則表達式MySQL的正則表達式與多個替換?

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

它的成功合作,也有它的缺點?我陷入困境後

我的新樹遊戲有好多個連接到它的技術:

我現在的儲蓄增加分支機構,列名branchIndex,它是一個逗號seprated串上樹保持分支位置。

但是,當用戶削減分支我需要從字符串中刪除該索引,加上保持字符串準確。此外,它會發生更多的時間超過2000 - 3000用戶。

回答

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,', ',')); 
+0

它解決了去除指數與逗號 – justnajm

1

如果你想要做同一列的多個替代,你應該把它寫成:

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

但不是一個逗號分隔的字符串,它可能會更好地把樹枝到一個單獨的表。然後你只需添加和刪除表中的行。