How to only select numeric data from mysql?

后端 未结 6 1111
一个人的身影
一个人的身影 2020-11-30 12:09

Does mysql have a function like is_num() which can allow me determine the data is numeric or not?

6条回答
  •  旧时难觅i
    2020-11-30 12:48

    Thousand times faster.

    DROP FUNCTION IF EXISTS NumericOnly;
    DELIMITER $$
    CREATE FUNCTION NumericOnly(val VARCHAR(25)) RETURNS VARCHAR(25)
    BEGIN
     DECLARE idx INT DEFAULT 0;
      IF ISNULL(val) THEN RETURN NULL; END IF;
      IF LENGTH(val) = 0 THEN RETURN ""; END IF;
    
     SET idx = LENGTH(val);
      WHILE idx > 0 DO
      IF (SUBSTRING(val,idx,1) in ('0','1','2','3','4','5','6','7','8','9')) = 0 THEN
       SET val = CONCAT(SUBSTRING(val, 1, idx-1), SUBSTRING(val FROM idx + 1));
      END IF;
      SET idx = idx - 1;
      END WHILE;
      RETURN val;
    END;
    $$
    DELIMITER ;
    

提交回复
热议问题