sql >> データベース >  >> RDS >> Mysql

MySQLは比較する非数字文字を削除します

    これは古代のトピックだと思いますが、この問題をグーグルで調べたところ、簡単な解決策が見つかりませんでした(由緒あるエージェントを見ましたが、これはもっと簡単な解決策だと思います)。 P>

    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. グループごとにランダムな行を選択します

    2. SQL自己結合

    3. PostgreSQLに存在しない場合にのみテーブルを作成する方法

    4. PostgreSQL 9.1:重複せずに配列内の行を連結する方法、別のテーブルに参加する