MySQL字符串转整数类型

mysql如何把数字+,+不统一单位的字符串类型转换成数据?
如图所示,第一列销售金额为:数字+,+元或万元组成,想要转换成第二列所示的纯数据类型,要怎么写sql代码呀?

img

SELECT IF(LOCATE('万',销售金额)>0, REPLACE(REPLACE(销售金额, ',',''), '万元','') * 10000, REPLACE(REPLACE(销售金额, ',',''), '元','')) * 1 AS 'int类型';

  • 这篇博客也许可以解决你的问题👉 :MySQL批量插入字段 字符串+变量
  • 除此之外, 这篇博客: 肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!中的 MYSQL 最重要的命令 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • SELECT 从数据库中提取数据
    UPDATE  更新数据库中的数据
    DELETE 从数据库中删除数据 
    INSERT INTO 将新数据插入数据库
    CREATE DATABASE 创建一个新的数据库
    ALTER DATABASE 	修改数据库
    CREATE TABLE 	创建一个新表
    ALTER TABLE 	修改表
    DROP TABLE		删除表
    CREATE INDEX	创建索引(搜索键)
    DROP INDEX	删除索引
    
  • 以下回答由chatgpt基于相关博客总结生成:

    根据问题描述,你需要将包含数字和不统一单位的字符串转换为整数类型。而且列的数据格式是"数字+,+不统一单位",你想将这些数据转换为纯整数类型。

    下面是解决问题的步骤和代码示例:

    1. 创建一个新的表,包含两个列:一个列用于存储原始字符串,另一个列用于存储转换后的整数值。
    CREATE TABLE converted_data (
      original_string VARCHAR(255),
      converted_value INT
    );
    
    1. 插入原始数据到表格中。
    INSERT INTO converted_data (original_string)
    SELECT your_column_name
    FROM your_table_name;
    
    1. 使用MySQL的字符串函数和转换函数,将原始字符串转换为整数。
    UPDATE converted_data
    SET converted_value = CAST(SUBSTRING_INDEX(original_string, ',', 1) AS SIGNED);
    
    1. 删除原始字符串中的数字部分以及逗号。
    UPDATE converted_data
    SET original_string = TRIM(SUBSTRING(original_string, LOCATE(',', original_string) + 1));
    
    1. 使用CASE语句根据不同的单位进行转换。
    UPDATE converted_data
    SET converted_value = 
      CASE 
        WHEN original_string LIKE '%kg' THEN converted_value * 1000
        WHEN original_string LIKE '%g' THEN converted_value
        WHEN original_string LIKE '%mg' THEN converted_value / 1000
        -- 添加其他单位的转换规则
      END;
    
    1. 删除原始字符串中的单位部分。
    UPDATE converted_data
    SET original_string = TRIM(TRAILING 'kg' FROM original_string);
    
    1. 查看转换后的结果。
    SELECT original_string, converted_value 
    FROM converted_data;
    

    这些步骤将根据你给出的数据格式将原始字符串转换为整数类型,并将转换后的值和原始字符存储在新的表中。你可以根据实际情况调整单位的转换规则和字符串的处理方式。

    希望这些步骤和示例能帮助你解决问题。如果你有任何其他问题,请随时提问。