如何计算表格列中的值

时间:2017-04-21 14:27:05

标签: php mysql

id | produit   | qte | amount
----------------------------
1  | iphone    |  15 |  110$
2  | tablet    |  18 |  50$
3  | laptop    |  19 |  250.99$
4  | Tide      |  21 |  10$

如何计算此表中所有这些产品的总金额?

2 个答案:

答案 0 :(得分:1)

您可以使用SUMREPLACE

来使用以下查询
SELECT SUM(CAST(REPLACE(amount, '$', '') AS DECIMAL) 
FROM table_name
  

我建议您从列$中删除amount,而不是使用上面的查询!使用这些值的脚本/前端应该知道该列正在使用哪种货币。

如何改进数据库设计/专栏?

使用以下查询从此列中删除所有$

UPDATE table_name SET amount = TRIM(REPLACE(amount, '$', ''))

执行following query以获取所有非数字值:

SELECT * FROM table_name WHERE NOT CONCAT('', amount * 1) = amount

如果上面的查询没有返回任何行,您可以ALTER将您的列类型更改为DECIMAL(6, 2)DOUBLE(可能有浮动数字?):

ALTER TABLE table_name MODIFY COLUMN amount DECIMAL(6, 2)

答案 1 :(得分:1)

您需要更改表格结构,将amount存储为DOUBLE,而不是VARCHAR

UPDATE t SET amount = REPLACE(amount, '$','');

ALTER TABLE t MODIFY amount DOUBLE;

然后您可以使用聚合函数SUM

SELECT SUM(amount) FROM t

http://sqlfiddle.com/#!9/2c335cc/1