[英]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.