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 サイトの他の関連記事を参照してください。