sql >> Database teknologi >  >> RDS >> Mysql

MySQL strip ikke-numeriske tegn for at sammenligne

Jeg er klar over, at dette er et ældgammelt emne, men da jeg googlede dette problem, kunne jeg ikke finde en simpel løsning (jeg så de ærværdige agenter, men tror, ​​at dette er en enklere løsning), så her er en funktion, jeg skrev, som ser ud til at fungere ret godt.

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


  1. Beregn næste primærnøgle - af specifikt format

  2. INFORMATION_SCHEMA vs sysobjects

  3. dvale med c3p0:createClob() er endnu ikke implementeret

  4. Tilføj unik begrænsning til kombination af to kolonner