編輯:啊我看你還想把結果變回VARCHAR。使用CONCAT()將$符號添加回前面應該很容易,但如果不編寫自定義函數,則添加逗號會很棘手。我可能不需要告訴你,但將這樣的值存儲爲數據庫中的VARCHARs不是一個好主意。
這不是很漂亮,但是像這樣?
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)
你能顯示'SELECT * FROM house WHERE NNS_NO = 542'和'SHOW CREATE TABLE house'的輸出嗎?如果您在運行這些查詢之前對其中任一查詢進行了任何修改,那麼還請準確顯示您使用的查詢。 – 2012-07-19 12:18:26