我有一张大型企业表。每个公司的销售都有一个字段,我想删除销售额超过2000000的每条记录,但是记录是VARCHAR并且在其中有逗号,如此2,000,000
这样的事情会起作用吗?
DELETE FROM `tablename` WHERE `sales` > 2,000,000
答案 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