MySQL中如何处理导入的带货币符号的预算、营收列值?
解决MySQL中带美元符号的金额列无法排序问题
- 场景:学习谷歌数据分析课程,课程用BigQuery教授SQL,我改用MySQL Server+MySQL Workbench替代。导入电影数据.csv时,
budget和revenue列因包含$被识别为TEXT类型,导致无法按金额排序。 - 踩坑记录:曾尝试用带@变量的REPLACE查询,结果返回NULL;后来用SELECT语句能成功去除符号,但不知道怎么把处理后的值更新回原列。
最终解决方案
步骤1:更新列值,去除美元符号和逗号
执行UPDATE语句,清理budget和revenue列的格式:
UPDATE 你的表名 SET budget = REPLACE(REPLACE(budget, '$', ''), ',', ''), revenue = REPLACE(REPLACE(revenue, '$', ''), ',', '');
注意:如果数据里还有其他非数字字符,需要额外处理;执行前建议先备份数据,或用
SELECT预览结果确认。
步骤2:修改列类型为DECIMAL
将清理后的列改为适合存储大额金额的DECIMAL类型:
ALTER TABLE 你的表名 MODIFY COLUMN budget DECIMAL(40,2), MODIFY COLUMN revenue DECIMAL(40,2);
处理完成后,即可正常对金额列进行排序和数值运算。
内容的提问来源于stack exchange,提问作者newuser2255
相关产品推荐
相关产品推荐

