ホームページ > データベース > mysql チュートリアル > MySQL の文字列から数字を抽出するにはどうすればよいですか?

MySQL の文字列から数字を抽出するにはどうすればよいですか?

DDD
リリース: 2025-01-09 16:57:46
オリジナル
499 人が閲覧しました

How Can I Extract Digits from Strings in MySQL?

MySQL の文字列から数値を抽出します

英数字の文字列を扱う場合、さまざまなデータ処理のニーズに合わせて数字を分離する必要があります。 MySQL には、この目標を達成するためのいくつかの方法が用意されています。

数字で始まり、その後に数字以外の文字が続く文字列の場合は、CAST() または暗黙的な変換を使用できます。

<code class="language-sql">SELECT CAST('1234abc' AS UNSIGNED); -- 1234
SELECT '1234abc'+0; -- 1234</code>
ログイン後にコピー

任意に構造化された文字列から数値を抽出するには、ExtractNumber のようなカスタム関数を定義できます。

<code class="language-sql">DELIMITER $$

CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50))
RETURNS INT
NO SQL
BEGIN
    DECLARE ctrNumber VARCHAR(50);
    DECLARE finNumber VARCHAR(50) DEFAULT '';
    DECLARE sChar VARCHAR(1);
    DECLARE inti INTEGER DEFAULT 1;

    IF LENGTH(in_string) > 0 THEN
        WHILE(inti <= LENGTH(in_string)) DO
            SET sChar = SUBSTRING(in_string, inti, 1);
            IF sChar BETWEEN '0' AND '9' THEN
                SET finNumber = CONCAT(finNumber, sChar);
            END IF;
            SET inti = inti + 1;
        END WHILE;
        RETURN CAST(finNumber AS UNSIGNED);
    ELSE
        RETURN 0;
    END IF;
END$$

DELIMITER ;</code>
ログイン後にコピー

カスタム関数 ExtractNumber を定義した後、クエリでそれを使用できます。

<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>
ログイン後にコピー

以上がMySQL の文字列から数字を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート