繁体   English   中英

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

[英]MYSQL: Convert String between two characters to integer

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

$ 5,000(美国)(2011年10月23日)

$ 981,000(美国)(1933)

$ 560(美国)

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

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

$ 5,000(美国)(2011年10月23日)

变成5000

我想我需要MYSQL在'$'和'((USA)')之间找到数字,删除','并将其转储到新的columnn中。我最近使用的是

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

可靠地切出图中的所有内容。

$ 5,000(美国)(2011年10月23日)

变成$ 5,000

但是我该如何完成? 我是MYSQL的新手,所以任何输入都会很棒,谢谢!

考虑以下

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 |
+--------------------------------+--------+
SELECT CAST( REPLACE( REPLACE( SUBSTRING_INDEX(  '$5,000(USD)',  '(' , +1 ) ,  '$',  '' ) ,  ',',  '' ) AS UNSIGNED )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM