在 MySQL 中对逗号分隔列求和:旧版本的解决方案
在 MySQL 版本 4 中,处理逗号分隔的数字列出现尝试执行聚合时的挑战。然而,虽然现代版本的 MySQL 提供了存储过程来解决此类复杂性,但它们在 MySQL 4 中不可用。
不幸的是,MySQL 4 是一个过时的版本,强烈建议不要使用它。 4.1 分支的最新版本是 2008 年的 4.1.25,使其不受支持并已过时。大多数 Linux 发行版已停止提供 MySQL 4。如果可能,强烈建议升级到 MySQL 5。
尽管如此,如果升级不可行,这里有一个在 MySQL 4 中对逗号分隔的小数列求和的有效解决方案:
<code class="mysql">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 ;</code>
使用示例:
<code class="mysql">mysql> SELECT SUM_OF_LIST("5,2.1") AS Result; +--------+ | Result | +--------+ | 7.1 | +--------+</code>
以上是如何在旧版 MySQL 版本 (MySQL 4) 中对列中的逗号分隔值求和?的详细内容。更多信息请关注PHP中文网其他相关文章!