Untuk melakukan manipulasi string yang tidak sepele ini, Anda perlu menggunakan prosedur tersimpan, yang, untuk MySQL, baru muncul 6 tahun yang lalu, di versi 5.0.
MySQL 4 sekarang sudah sangat tua, versi terbaru dari cabang 4.1 adalah 4.1.25, pada tahun 2008. Tidak didukung lagi. Sebagian besar distribusi Linux tidak menyediakannya lagi. Saatnya untuk meningkatkan versi.
Berikut adalah solusi yang berfungsi untuk 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 ;
Contoh:
mysql> SELECT SUM_OF_LIST("5,2.1") AS Result;
+--------+
| Result |
+--------+
| 7.1 |
+--------+