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

MYSQL:将两个字符之间的字符串转换为整数,mysql,string,integer,substring,extract,Mysql,String,Integer,Substring,Extract,我有一个长度和内容不同的字符串列,示例包括 5000美元(美国)(2011年10月23日) 981000美元(美国)(1933年) 560美元(美国) 它总是以$开头,最初的数字后面总是跟有“(USA)” 我想做的是提取美元数字,并将其作为整数放入新列中 5000美元(美国)(2011年10月23日) 变成5000 我想我需要MYSQL来定位“$”和“(USA)”之间的数字,删除“,”并将其转储到一个新的columnn中 SELECT SUBSTRING_INDEX(field, '('

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

5000美元(美国)(2011年10月23日)

981000美元(美国)(1933年)

560美元(美国)

它总是以$开头,最初的数字后面总是跟有“(USA)”

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

5000美元(美国)(2011年10月23日)

变成5000

我想我需要MYSQL来定位“$”和“(USA)”之间的数字,删除“,”并将其转储到一个新的columnn中

    SELECT SUBSTRING_INDEX(field, '(',+1)
它可靠地删除了数字后面的所有内容

5000美元(美国)(2011年10月23日)

变成5000美元


但是我该怎么结束呢?我是MYSQL的新手,所以任何输入都会很好,谢谢

考虑以下几点

mysql> select * from test ;
+--------------------------------+--------+
| val                            | amount |
+--------------------------------+--------+
| $5,000 (USA) (23 October 2011) |   NULL |
| $981,000 (USA) (1933)          |   NULL |
+--------------------------------+--------+
现在使用下面的更新命令,
amount
列将使用字符串中的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 |
+--------------------------------+--------+

如果amount是7位的numberIt,则不管它将提取的数字有多大,现在它取决于
int
数据类型限制,如果超出该限制,则可能需要将列设置为
bigint
,这看起来很棒!我不想创建一个新字段,但我使用了replace(replace(substring_index(val,“(USA)”,1),“$”,“,”,”,“,”,”)作为SELECT查询的一部分,它生成了一个新列供我根据需要导出。非常感谢!这与阿比克的回答相似,但不清楚演员会为我做些什么。不过,它与最重要的答案一起帮助了我。
SELECT CAST( REPLACE( REPLACE( SUBSTRING_INDEX(  '$5,000(USD)',  '(' , +1 ) ,  '$',  '' ) ,  ',',  '' ) AS UNSIGNED )