总结 MySQL 4 中的逗号分隔列困境
在 MySQL 4 数据库中,您在尝试传输数据时可能会遇到挑战表之间,特别是当其中一列包含以逗号分隔的十进制值列表而不是单个数字时。由于缺乏某些功能,在 SQL 环境中实现这些值的所需求和会遇到困难。
在这种情况下,使用存储过程被证明是必不可少的,因为这些是在 MySQL 5.0 出现时才引入的。不过,由于 MySQL 4 是一个过时的版本,目前主流 Linux 发行版均不支持或不可用,因此强烈建议升级。
为了解决当前的具体问题,提供了针对 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 ;
可以通过以下示例使用此函数:
SELECT SUM_OF_LIST("5,2.1") AS Result;
结果输出将是:
+--------+ | Result | +--------+ | 7.1 | +--------+
以上是如何对 MySQL 4 数据库列中逗号分隔的十进制值求和?的详细内容。更多信息请关注PHP中文网其他相关文章!