MySQL 4 中对逗号分隔列进行求和
用户遇到了源列中的数据可以以逗号分隔形式呈现的情况数字列表。目标是将这些数据转换为对数字进行求和的目标列。使用 MySQL 版本 4 时会出现此挑战,该版本缺少 MySQL 5.0 中引入的功能。
解决方案
不幸的是,MySQL 4 不支持存储过程,而存储过程是必不可少的用于像所介绍的那样复杂的字符串操作任务。因此,建议升级到 MySQL 5.0 或更高版本。
MySQL 5.0 解决方案
对于 MySQL 5.0 及以上版本,可以采用以下解决方案:
DELIMITER // CREATE FUNCTION SUM_OF_LIST(s TEXT) RETURNS DOUBLE DETERMINISTIC NO SQL BEGIN DECLARE res DOUBLE DEFAULT 0; WHILE INSTR(s, ",") > 0 DO SET res = res + SUBSTRING_INDEX(s, ",", 1); SET s = MID(s, INSTR(s, ",") + 1); END WHILE; RETURN res + s; END // DELIMITER ;
用法示例:
mysql> SELECT SUM_OF_LIST("5,2.1") AS Result; +--------+ | Result | +--------+ | 7.1 | +--------+
以上是如何对 MySQL 4 列中逗号分隔的数字求和?的详细内容。更多信息请关注PHP中文网其他相关文章!