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

MySQLクエリの文字列から数値をどのように抽出しますか?

    この関数は、文字列から0〜9の数字のみを返す役割を果たします。これにより、使用しているプレフィックスやポストフィックスに関係なく、問題を解決することができます。

    http://www.artfulsoftware.com/infotree/queries.php ?&bw =1280#815

    参考のためにここにコピー:

    SET GLOBAL log_bin_trust_function_creators=1;
    DROP FUNCTION IF EXISTS digits;
    DELIMITER |
    CREATE FUNCTION digits( str CHAR(32) ) RETURNS CHAR(32)
    BEGIN
      DECLARE i, len SMALLINT DEFAULT 1;
      DECLARE ret CHAR(32) DEFAULT '';
      DECLARE c CHAR(1);
    
      IF str IS NULL
      THEN 
        RETURN "";
      END IF;
    
      SET len = CHAR_LENGTH( str );
      REPEAT
        BEGIN
          SET c = MID( str, i, 1 );
          IF c BETWEEN '0' AND '9' THEN 
            SET ret=CONCAT(ret,c);
          END IF;
          SET i = i + 1;
        END;
      UNTIL i > len END REPEAT;
      RETURN ret;
    END |
    DELIMITER ;
    
    SELECT digits('$10.00Fr'); 
    #returns 1000
    


    1. JSON_MERGE_PATCH()–MySQLでRFC7396準拠のJSONドキュメントのマージを実行します

    2. SQL Serverにテーブルが存在するかどうかを確認する6つの方法(T-SQLの例)

    3. JSON_INSERT()–MySQLのJSONドキュメントに値を挿入します

    4. PostgreSQLで2つのタイムスタンプの差を計算する方法