按销售额从表中删除MySQL记录

时间:2013-11-21 20:12:47

标签: mysql sql

我有一张大型企业表。每个公司的销售都有一个字段,我想删除销售额超过2000000的每条记录,但是记录是VARCHAR并且在其中有逗号,如此2,000,000

这样的事情会起作用吗?

DELETE FROM `tablename` WHERE `sales` > 2,000,000

3 个答案:

答案 0 :(得分:2)

删除逗号并强制进行数字转换

DELETE FROM `tablename` 
WHERE replace(sales, ',', '') * 1 > 2000000
最好将sales列的数据类型更改为数字类型。

答案 1 :(得分:0)

    delete from table1 where replace( replace(sales, ',', ''), '"', '' ) >=200000

这是fiddle

答案 2 :(得分:0)

当您说您的数字值中有逗号时,您的意思是您将数据库中的数字存储为VARCHAR类型吗?或者您将销售值存储在数字类型的字段中,然后只使用FORMAT()函数应用格式来添加逗号?

如果您将数字存储为VARCHAR,则您的示例查询将无效,但如果您将这些值存储为数字类型,则可以忽略逗号并使用

DELETE FROM `tablename` WHERE `sales` > 2000000