Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL entfernt nicht numerische Zeichen zum Vergleich

Mir ist klar, dass dies ein uraltes Thema ist, aber als ich dieses Problem googelte, konnte ich keine einfache Lösung finden (ich habe die ehrwürdigen Agenten gesehen, denke aber, dass dies eine einfachere Lösung ist), also hier ist eine Funktion, die ich geschrieben habe und die ziemlich gut zu funktionieren scheint.

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
$$