文字我在做遷移MySQL的 - 刪除從INT類型的列
我有一個列名amount_in_rmb
VARCHAR
。但我想將其更改爲DOUBLE(10,2)
。
問題是,中amount_in_rmb
一些行包含類似RMB1525
,RM23523
和等數據
我只想要1525
但不希望RMB
因爲我改變列類型翻番
我的問題是,如何使用mysql查詢或任何方法從行中刪除「RMB」或「RM」?數值非常重要,不能刪除。
文字我在做遷移MySQL的 - 刪除從INT類型的列
我有一個列名amount_in_rmb
VARCHAR
。但我想將其更改爲DOUBLE(10,2)
。
問題是,中amount_in_rmb
一些行包含類似RMB1525
,RM23523
和等數據
我只想要1525
但不希望RMB
因爲我改變列類型翻番
我的問題是,如何使用mysql查詢或任何方法從行中刪除「RMB」或「RM」?數值非常重要,不能刪除。
如果這些是唯一可能的前綴,你可以這樣做:
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開頭的字母。
謝謝barmar。實際上有幾個可能的前綴。我所做的就是再擠一些,然後讓它完成。順便說一下,如果你有更好的解決方案,爲更多可能的前綴工作,我相信它會幫助別人尋找這樣的解決方案:) –
如果只有RMB您的非數字信息,請使用REPLACE函數:REPLACE(field,'RMB','') –