MYSQL:将两个字符之间的字符串转换为整数

时间:2015-04-16 13:06:43

标签: mysql string integer substring extract

我的字符串列的长度和内容各不相同,例如......

  

$ 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很新,所以任何输入都会很棒,谢谢!

2 个答案:

答案 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 )