编辑:啊,我看到您还想将结果转换回 VARCHAR。使用 CONCAT() 将 $ 符号添加回前面应该很容易,但是如果不编写自定义函数,将逗号重新添加会很棘手。我可能不需要告诉你,但是将像这样的值作为 VARCHAR 存储在数据库中并不是一个好主意。
它不漂亮,但像这样?
mysql> SELECT * FROM sum2;
+--------+--------+-------+
| a | b | total |
+--------+--------+-------+
| $1,000 | $2,000 | NULL |
| $1,500 | NULL | NULL |
+--------+--------+-------+
2 rows in set (0.02 sec)
mysql> UPDATE sum2 SET total= IFNULL(REPLACE(REPLACE(a, '$', ''), ',', ''), 0) + IFNULL((REPLACE(REPLACE(b, '$', ''), ',', '')), 0);
Query OK, 2 row affected (0.02 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> SELECT * FROM sum2;
+--------+--------+-------+
| a | b | total |
+--------+--------+-------+
| $1,000 | $2,000 | 3000 |
| $1,500 | NULL | 1500 |
+--------+--------+-------+
2 rows in set (0.02 sec)