Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 문자열에서 영숫자가 아닌 모든 문자를 제거하는 방법은 무엇입니까?

<시간/>

영숫자가 아닌 문자는 다음과 같습니다. -

@,!,#,&,(),?, /

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)에는 @ 및 ! 이제 기능이 올바르게 작동하고 있음을 의미합니다.