如何在MySql中获取字符列的数字签名

如何在MySql中获取字符列的数字签名,mysql,sql,Mysql,Sql,给定MySql中的CHAR或VARCHAR列,我需要将其转换为一个数字,以便对其进行求和。例如,如果列名为CHAR1,则选择将是: SELECT SUM(ConvertToNumber(CHAR1)) from TABLE1 函数ConvertToNumber只需要转换成一个数字,不管是哪个数字,只要它总是转换成相同的数字 对于本机或用户定义的函数,这是否可行 更新:需要说明的是,CHAR1的值可以是任何字母数字字符串。您可以将列转换为十六进制格式,然后将此结果转换为以10为底的整数 SELE

给定MySql中的CHAR或VARCHAR列,我需要将其转换为一个数字,以便对其进行求和。例如,如果列名为CHAR1,则选择将是:

SELECT SUM(ConvertToNumber(CHAR1)) from TABLE1
函数
ConvertToNumber
只需要转换成一个数字,不管是哪个数字,只要它总是转换成相同的数字

对于本机或用户定义的函数,这是否可行


更新:需要说明的是,CHAR1的值可以是任何字母数字字符串。

您可以将列转换为十六进制格式,然后将此结果转换为以10为底的整数

SELECT CAST(CHAR1 AS UNSIGNED) FROM TABLE1
SELECT SUM(CONV(HEX(CHAR1), 16, 10)) FROM TABLE1;
例如:

INSERT INTO TABLE1 (CHAR1) VALUES ("foo"), ("bar"), ("baz");

/* "int" value for each entry */
SELECT CONV(HEX(CHAR1), 16, 10) FROM TABLE1;

6713199
6447474
6447482

/* sum of the int values */
SELECT SUM(CONV(HEX(CHAR1), 16, 10)) FROM TABLE1

19608155

你在谷歌上搜索过“MySQL convert CHAR to INT”吗?可能的cast副本不是我想要的。据我所知,OP希望将任何值转换为整数,例如不表示或甚至不包含任何数字的值。没错,列值可以是任何字母数字字符