我的字符串列的长度和内容各不相同,例如......
$ 5,000(美国)(2011年10月23日)
$ 981,000(美国)(1933)
560美元(美国)
它总是以$开头,而最初的数字总是跟着' (USA)'
我想要做的是提取美元数字并将其作为整数放入新列。
$ 5,000(美国)(2011年10月23日)
变成5000
我认为我需要MYSQL来定位' $'而且' (美国)',删除','并将其转储到一个新的列中。我最接近的是
SELECT SUBSTRING_INDEX(field, '(',+1)
在数字之后可以切断一切......
$ 5,000(美国)(2011年10月23日)
变成$ 5,000
但我该如何完成?我对MYSQL很新,所以任何输入都会很棒,谢谢!
答案 0 :(得分:2)
考虑以下
mysql> select * from test ;
+--------------------------------+--------+
| val | amount |
+--------------------------------+--------+
| $5,000 (USA) (23 October 2011) | NULL |
| $981,000 (USA) (1933) | NULL |
+--------------------------------+--------+
现在使用以下更新命令,amount
列将使用字符串中的金额值更新为
update test
set amount = replace(replace(substring_index(val,'(USA)',1),'$',''),',','') ;
mysql> select * from test ;
+--------------------------------+--------+
| val | amount |
+--------------------------------+--------+
| $5,000 (USA) (23 October 2011) | 5000 |
| $981,000 (USA) (1933) | 981000 |
+--------------------------------+--------+
答案 1 :(得分:0)
SELECT CAST( REPLACE( REPLACE( SUBSTRING_INDEX( '$5,000(USD)', '(' , +1 ) , '$', '' ) , ',', '' ) AS UNSIGNED )