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



Mysql Extract Numbers From String



最初のメソッドには、図に示すようにデータベース独自の機能があります。これは実行可能ですが、番号が前にある場合にのみ存在します。ここでは、カスタム関数を介してのみそれを解決できます。



図に示すように、真ん中または後ろに数字が表示された場合、値を取得できません。



最もフレンドリーなソリューション:

次に示すように、最初にカスタム関数を実行します。

DROP FUNCTION IF EXISTS `ExtractNumber` 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 0 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

示されている効果図: