इस तरह के गैर-तुच्छ स्ट्रिंग जोड़तोड़ करने के लिए, आपको संग्रहीत प्रक्रियाओं का उपयोग करने की आवश्यकता है, जो कि MySQL के लिए, केवल 6 साल पहले संस्करण 5.0 में दिखाई दिया था।
MySQL 4 अब बहुत पुराना है, 2008 में शाखा 4.1 का नवीनतम संस्करण 4.1.25 था। यह अब समर्थित नहीं है। अधिकांश लिनक्स वितरण अब इसे प्रदान नहीं करते हैं। यह वास्तव में अपग्रेड करने का समय है।
यहाँ एक समाधान है जो 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 |
+--------+