집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!