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

MYSQL: Convert String between two characters to integer

我有一个长度和内容各不相同的字符串列,示例包括...

,000 (USA) (23 October 2011)

1,000 (USA) (1933)

0 (USA)

它始终以 $ 开头,并且初始数字始终后跟 '(USA)'。

我想做的是提取美元数字并将其作为整数放入新列中。

,000 (USA) (23 October 2011)

becomes 5000

我想我需要 MYSQL 找到“$”和“(USA)”之间的数字,删除“,”并将其转储到新的 columnn.The 最近的 I'我正在使用

    SELECT SUBSTRING_INDEX(field, '(',+1)

它可靠地删除了图形之后的所有内容....

,000 (USA) (23 October 2011)

becomes ,000

但是我该如何结束呢?我是 MYSQL 的新手,所以任何意见都很好,谢谢!

考虑以下

mysql> select * from test ;
+--------------------------------+--------+
| val                            | amount |
+--------------------------------+--------+
| ,000 (USA) (23 October 2011) |   NULL |
| 1,000 (USA) (1933)          |   NULL |
+--------------------------------+--------+

现在使用以下更新命令,amount 列将更新为

字符串中的金额值
update test 
set amount = replace(replace(substring_index(val,'(USA)',1),'$',''),',','') ;

mysql> select * from test ;
+--------------------------------+--------+
| val                            | amount |
+--------------------------------+--------+
| ,000 (USA) (23 October 2011) |   5000 |
| 1,000 (USA) (1933)          | 981000 |
+--------------------------------+--------+
SELECT CAST( REPLACE( REPLACE( SUBSTRING_INDEX(  ',000(USD)',  '(' , +1 ) ,  '$',  '' ) ,  ',',  '' ) AS UNSIGNED )