我想從mysql表中的字段替換多個單詞。我一直在使用多個步驟:我如何替換mysql中的多個鍵
update table1 set fld1=replace(fld1,'and', '');
update table1 set fld1=replace(fld1,'or', '');
update table1 set fld1=replace(fld1,'xor', '');
...
我該如何做到單步?
我想從mysql表中的字段替換多個單詞。我一直在使用多個步驟:我如何替換mysql中的多個鍵
update table1 set fld1=replace(fld1,'and', '');
update table1 set fld1=replace(fld1,'or', '');
update table1 set fld1=replace(fld1,'xor', '');
...
我該如何做到單步?
醜陋的方式...
UPDATE table1 SET fld1 = replace(replace(replace(fld1, 'and', ''), 'xor', ''), 'or', '')
請注意,如果「異或」前更換「或」它會匹配「異」的一部分,離開了X,所以順序是非常重要的。
您可以撰寫replace
電話:
update table1
set fld1 = replace(replace(replace(fld1, 'xor', ''), 'or', ''), 'and', '');
我認爲這是你可以在MySQL做到最好,而不額外的用戶定義的函數編譯。 PostgreSQL和(AFAIK)Oracle有完整的正則表達式支持,但MySQL只支持正則表達式匹配。
如果你必須做很多這樣的事情,那麼你可能想在數據庫之外做一個合理的解決方案,不涉及瘋狂的嵌套replace
函數的水平。
http://stackoverflow.com/questions/1671040/can-mysql-replace-multiple-characters – jimy 2011-05-04 08:08:28