2014-02-22 27 views
0

文字我在做遷移MySQL的 - 刪除從INT類型的列

我有一個列名amount_in_rmbVARCHAR。但我想將其更改爲DOUBLE(10,2)

問題是,中amount_in_rmb一些行包含類似RMB1525RM23523和等數據

我只想要1525但不希望RMB因爲我改變列類型翻番

我的問題是,如何使用mysql查詢或任何方法從行中刪除「RMB」或「RM」?數值非常重要,不能刪除。

+0

如果只有RMB您的非數字信息,請使用REPLACE函數:REPLACE(field,'RMB','') –

回答

0

如果這些是唯一可能的前綴,你可以這樣做:

UPDATE YourTable 
SET amount_in_rmb = CASE WHEN amount_in_rmb LIKE 'RMB%' THEN SUBSTR(amount_in_rmb, 4) 
         WHEN amount_in_rmb LIKE 'RM%' THEN SUBSTR(amount_in_rmb, 3) 
         ELSE amount_in_rmb 
        END 

如果有其他前綴,增加更多的WHEN條款。我不認爲有一個簡單的方法可以跳過所有以SQL開頭的字母。

+0

謝謝barmar。實際上有幾個可能的前綴。我所做的就是再擠一些,然後讓它完成。順便說一下,如果你有更好的解決方案,爲更多可能的前綴工作,我相信它會幫助別人尋找這樣的解決方案:) –