Pour faire ce genre de manipulations de chaînes non triviales, il faut utiliser des procédures stockées, qui, pour MySQL, n'apparaissaient qu'il y a 6 ans, en version 5.0.
MySQL 4 est maintenant très ancien, la dernière version de la branche 4.1 était la 4.1.25, en 2008. Elle n'est plus supportée. La plupart des distributions Linux ne le fournissent plus. Il est vraiment temps de mettre à jour.
Voici une solution qui fonctionne pour 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 ;
Exemple :
mysql> SELECT SUM_OF_LIST("5,2.1") AS Result;
+--------+
| Result |
+--------+
| 7.1 |
+--------+