Tôi nhận ra rằng đây là một chủ đề cổ xưa nhưng khi truy cập vấn đề này, tôi không thể tìm thấy một giải pháp đơn giản (tôi đã nhìn thấy các đặc vụ đáng kính nhưng nghĩ rằng đây là một giải pháp đơn giản hơn) vì vậy đây là một chức năng tôi đã viết, có vẻ hoạt động khá tốt.
DROP FUNCTION IF EXISTS STRIP_NON_DIGIT;
DELIMITER $$
CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
DECLARE output VARCHAR(255) DEFAULT '';
DECLARE iterator INT DEFAULT 1;
WHILE iterator < (LENGTH(input) + 1) DO
IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN
SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
END IF;
SET iterator = iterator + 1;
END WHILE;
RETURN output;
END
$$