यह फ़ंक्शन केवल स्ट्रिंग से अंक 0-9 को वापस करने का काम करता है, जो आपकी समस्या को हल करने के लिए अच्छी तरह से काम करता है, भले ही आपके पास कोई भी उपसर्ग या पोस्टफ़िक्स हो।
http://www.artfulsoftware.com/infotree/queries.php ?&bw=1280#815
संदर्भ के लिए यहां कॉपी किया गया:
SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS digits;
DELIMITER |
CREATE FUNCTION digits( str CHAR(32) ) RETURNS CHAR(32)
BEGIN
DECLARE i, len SMALLINT DEFAULT 1;
DECLARE ret CHAR(32) DEFAULT '';
DECLARE c CHAR(1);
IF str IS NULL
THEN
RETURN "";
END IF;
SET len = CHAR_LENGTH( str );
REPEAT
BEGIN
SET c = MID( str, i, 1 );
IF c BETWEEN '0' AND '9' THEN
SET ret=CONCAT(ret,c);
END IF;
SET i = i + 1;
END;
UNTIL i > len END REPEAT;
RETURN ret;
END |
DELIMITER ;
SELECT digits('$10.00Fr');
#returns 1000