영숫자가 아닌 문자는 다음과 같습니다. -
@,!,#,&,(),?, /
MySQL에는 문자열에서 영숫자가 아닌 문자를 제거하는 내장 함수가 없습니다. 따라서 영숫자가 아닌 모든 문자를 제거하는 함수를 만듭니다. 함수 선언 및 정의는 다음과 같습니다.
mysql> delimiter // mysql> CREATE FUNCTION RemoveNonAlphaNumeric( s CHAR(255) ) RETURNS CHAR(255) DETERMINISTIC -> BEGIN -> DECLARE var1, length SMALLINT DEFAULT 1; -> DECLARE result CHAR(255) DEFAULT ''; -> DECLARE ch CHAR(1); -> SET length = CHAR_LENGTH( s ); -> REPEAT -> BEGIN -> SET ch = MID( s, var1, 1 ); -> IF ch REGEXP '[[:alnum:]]' THEN -> SET result =CONCAT(result ,ch); -> END IF; -> SET var1 = var1 + 1; -> END; -> UNTIL var1 >length END REPEAT; -> RETURN result ; -> END // Query OK, 0 rows affected (0.10 sec)
'RemoveNonAlphaNumeric'이라는 함수는 문자열에서 영숫자가 아닌 모든 문자를 제거합니다. 확인하기 위해 이제 사용자 정의 함수를 호출합니다.
mysql>delimiter ; mysql> select 'My Email id is test@123!',RemoveNonAlphaNumeric('My Email id is test@123!');
다음은 "RemoveNonAlphaNumeric" 기능을 사용하여 영숫자 문자를 성공적으로 제거한 결과를 표시하는 출력입니다.
+--------------------------+---------------------------------------------------+ | My Email id is test@123! | removeNonAlphaNumeric('My Email id is test@123!') | +--------------------------+---------------------------------------------------+ | My Email id is test@123! | MyEmailidistest123 | +--------------------------+---------------------------------------------------+ 1 row in set (0.15 sec)
이 문자열(MyEmailidistest123)에는 @ 및 ! 이제 기능이 올바르게 작동하고 있음을 의미합니다.