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 )
我有一个长度和内容各不相同的字符串列,示例包括...
,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 )